この投稿はWatchKit Advent Calendar 2014の5日目の記事です。

WKInterfaceObjectとは

WatchKitに含まれるすべてのUIパーツのベースとなるクラスです。
つまり、WKInterfaceObjectを理解すれば、WatchKitのUIパーツすべて理解できます。たぶん。

WKInterfaceObjectはなんと、継承したり、コードでインスタンスを作ったりはできません。
すべてのUIパーツはStoryboardで作成する必要があります。
コードからUIパーツを弄りたい場合は、以下のようにしてStoryboardから参照します。

@property (weak, nonatomic) IBOutlet WKInterfaceButton* myButton;

詳しくはリファレンスを参照してください。

Hiding and Showing the Object

  • setHidden:
    iOSのUIViewと同じです。インスタンスを作ることはできないけど、隠すことはできるみたいです。

  • setAlpha:
    アルファを0.0から1.0の間で指定できます。0.0だと完全に透明で見えなくなります。

Getting the Property Name

  • interfaceProperty
    Storyboard上のオブジェクトとコードで扱うオブジェクトを対応させるためにWatchKitが内部的に使用する値のようです。
    開発者がこの値を直接使用する必要はないそうです。

Changing an Object’s Size

  • setWidth:
    Widthを指定します。
    0.0をセットすると、無視されてStoryboardの値が使用されます。

  • setHeight:
    Heightを指定します。
    0.0をセットすると、無視されてStoryboardの値が使用されます。

Configuring the Accessibility Attributes

  • setAccessibilityLabel:
    オブジェクトの簡潔な説明をセットします。

  • setAccessibilityHint:
    ユーザがオブジェクトを操作した時に何が起こるかの説明をセットします。

  • setAccessibilityLabel:
    オブジェクトの値をセットします。(スライダーやスイッチで使用する?)

そもそもAccessibilityとは

iOSの設定でアクセシビリティという項目がありますが、
VoiceOverやAssistiveTouchなど障害者の方向けの機能(?)などが
含まれています。

下記ページに詳しく書かれています。

iOSアプリ開発とアクセシビリティ対応について | Technology-Gym

Accessibilityに値をセットするとどんな挙動になるの?

試しにSliderを作って、適当な値をセットし、アクセシビリティインスペクタで確認してみましたが何も起きませんでした。
Apple Watchにはどのようなアクセシビリティの機能があるんでしょうか…

まとめ

以上、WKInterfaceObjectの全メソッド解説でした。
全体的にsetterしかないんですね。
Accessibilityがどんな挙動になるんでしょうか。楽しみです。

宣伝

Swiftでカスタムキーボードアプリ作りました。買ってね!
特殊文字キーボード

Pocket