iOS
WatchKit
watchOS

watchOS 2から追加されたWKInterfacePickerメモ

watchOS 2からWKInterfacePickerが使えるようになってました。

https://developer.apple.com/library/prerelease/watchos/documentation/WatchKit/Reference/WKInterfacePicker_class/index.html

iOSで言う UIPickerView のWatch版といったところでしょうか。

NDA期間のため、スクリーンショットは自粛します。

特徴は次の通り。


  • デジタルクラウンでPickerを回せる

  • 各アイテムにはテキストだけでなく、画像も使える(テキストの左に小さく表示される)

  • Pickerは複数設置可能


    • フォーカスを合わせるためには - focusForCrownInput メソッドを使う



  • 選択された値が変わる度に任意のアクションメソッドを呼べる


    • 選択中の index が取れる



サンプルコード:

@interface InterfaceController()

@property (strong, nonatomic) IBOutlet WKInterfacePicker *picker;
@property (strong, nonatomic) NSArray *pickerItems;
@end

@implementation InterfaceController

- (void)awakeWithContext:(id)context
{
[super awakeWithContext:context];

// Configure interface objects here.
WKPickerItem *pickerItem1 = [WKPickerItem alloc];
[pickerItem1 setTitle:@"First item"];
[pickerItem1 setAccessoryImage:[WKImage imageWithImageName:@"Smile"]];

WKPickerItem *pickerItem2 = [WKPickerItem alloc];
[pickerItem2 setTitle:@"Second item"];
[pickerItem2 setAccessoryImage:[WKImage imageWithImageName:@"Smile"]];

WKPickerItem *pickerItem3 = [WKPickerItem alloc];
[pickerItem3 setTitle:@"Third item"];
[pickerItem3 setAccessoryImage:[WKImage imageWithImageName:@"Smile"]];

self.pickerItems = [[NSArray alloc] initWithObjects:pickerItem1, pickerItem2, pickerItem3, nil];
[self.picker setItems:self.pickerItems];
}

- (IBAction)pickerAction:(NSInteger)value
{
NSLog(@"value = %d", value);
}