« AppleWatchでブロック崩し | トップページ | 米艦の南沙諸島沖航行を歓迎 »

Applewatchのデジタルクラウンを入力に使う(1)

 この@niftyのblogにもアクセス解析機能があって、それによると一連のiOS & Xcodeネタは全くと言っていいほど検索ヒットしておりません。 コンピュータ関連記事が検索ロボットに拾われてないのか?と思いきや、ここ数年、検索ヒットトップがAppleのスーパードライブに関する記事だったりするので、そうでもなさそうです。
 
 まぁ、プログラミングに専門化されているわけでもないので、ここが検索されていないのではなく、優先順位がずっと低いんだと思います。
 とはいえ、ここは自分自身の備忘録としての役割があるので(今度はプログラミングに興味のない人にとっては退屈な)、そんなことは構わずにメモっておきます。


 今回のwatchOS2の勉強に大変お世話になっているのが、こちら。 なんだかとんでもなく天才な方で、感謝の念にたえません。 GitHub形式のソースはこちらから落として、Xcodeで使うのですが、GitHubってなぁに?とこれはこれでまた勉強。
 
 さて、まず「Animation with Digital Crown」に目が止まりました。
 最初は、純正のタイマーセット画面などでも用いられている時計回りのアニメーションに注目。 しかし、これはあらかじめ用意されたビットマップ画像を表示させているので、仮にブロック崩しのパドルのような水平移動する画像に置き換えても、コードを埋め込むのは難しそうなので、次に注目したのが、中央で上下に動くドラム状の数字。
 これが得られれば、アニメーション可能な(ビットマップではなく)ドロー画像を描けそうです。
 
 そこで、

  @IBOutlet var picker: WKInterfacePicker!

 をプロパティとして接続した後、
    var pickerItems: [WKPickerItem]! = []
for (var i=1; i<=29; i++) {
let pickerItem = WKPickerItem()
pickerItems.append(pickerItem)
}

 で希望する数字列をfor文で配列に入れ、
  picker.focus()
 picker.setItems(pickerItems)

 としてピッカーで扱えるドラム状数字に置き換えます。
 
 さらに再度ピッカーをメソッドとして接続すると、上記pickerItemsを変数valueとして取り出すことができました。
  @IBAction func pickerChanged(value: Int) {
  print(value)
 }

 このpicker.focus()からpickerChanged(value: Int)に至るまでのヒントはこちらで得ました。
 
Block_watch2 なお、このピッカーは見た目には必要ないのですが、Hiddenにすると機能しないようなので、Alphaを0.25、縦横を2,2と最小にして隅に残しています。 


(つづく。 間に違うテーマの発言が入った時には、右欄からiOS と Xcodeカテゴリーをクリックしてください)

|

« AppleWatchでブロック崩し | トップページ | 米艦の南沙諸島沖航行を歓迎 »

iOS と Xcode」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




« AppleWatchでブロック崩し | トップページ | 米艦の南沙諸島沖航行を歓迎 »