内容の保証はできません。
/System/Library/frameWorks/UIKit.framework
クラス UIPickerView †
NSObject
|
+--UIResponder
|
+--UIView
|
+--UIPickerView
概要 †
UIPickerViewクラスは、1つまたは複数の値のセットを示すために、回転盤やスロットマシーンをモチーフに使用してオブジェクトを実装しています。ユーザは値が選択指標の列に整列されるまでホイールを回転させ、値を選択します。
UIDatePickerクラスは、日付と時刻を表示するUIPickerViewクラスのカスタムサブクラスを使用しています。一例を参照するには、時計アプリケーションのアラーム("+")ペインで[追加]ボタンをタップします。
UIPickerViewオブジェクトは、潜在的に多次元のユーザインタフェース要素の行とコンポーネントで構成されています。コンポーネントの項目は、ホイール上の位置(行)をインデックスとしてアイテム化したもので管理されています。各コンポーネントは、ピッカービュー内でのインデックスを保持しています。コンポーネントの各行では、文字列や、ラベル(UILabel)またはイメージ(UIImage)等のビューコンテンツを表示しています。
UIPickerViewオブジェクトは、コンポーネントとコンポーネントの数を提供するためのデータソースを構築するデリゲートの協力が必要です。デリゲートは、UIPickerViewDelegateプロトコルを採用したり、各行のコンポーネントの短形を描画するためのメソッドを実装する必要があります。また、文字列またはビューのいずれかをコンポーネントのコンテンツとして提供し、それを選択するか選択しないかを返答します。データソースはUIPickerViewDataSourceプロトコルを採用し、コンポーネントの数と行数を返すメソッドを実装しなければなりません。
reloadComponent:またはreloadAllComponentsメソッドを呼び出すことにより、1つまたは全てのコンポーネントの行数を、それぞれ動的に変更させることが出来ます。これらのメソッドは、UIPickerViewがデリゲートに新しいコンポーネントと行のデータの提供を要求する要因となります。1つのコンポーネントを変更するときに別のコンポーネントの値を設定する場合、例えば行の値を2月から3月に変更したなら、月の日付を表すようなピッカーの表示をリロードする必要がある。
インデックス †
ビューの寸法を取得 †
numberOfComponents property
- numberOfRowsInComponent:
- rowSizeForComponent:
ビューの再読み込み †
- reloadAllComponents
- reloadComponent:
行の選択 †
- selectRow:inComponent:animated:
- selectedRowInComponent:
コンポーネントのビューを返す †
- viewForRow:forComponent:
デリゲートの管理 †
delegate property
データソースの管理 †
dataSource property
ビューの外観の管理 †
showsSelectionIndicator property
プロパティ †
dataSource †
レシーバのデータソースを指定する。
@property(nonatomic, assign) id<UIPickerViewDataSource> dataSource
delegate †
レシーバのデリゲートを指定する。
@property(nonatomic, assign) id<UIPickerViewDelegate> delegate
numberOfComponents †
レシーバに表示されているコンポーネントの番号を返す。(読み取りのみ)
@property(nonatomic, readonly) NSInteger numberOfComponents
showsSelectionIndicator †
選択しているインジケーターが表示されるかどうかを決定する。
@property(nonatomic) BOOL showsSelectionIndicator
インスタンスメソッド †
numberOfRowsInComponent: †
指定したコンポーネントの行番号を返す。
− (NSInteger)numberOfRowsInComponent:(NSInteger)component
reloadAllComponents †
レシーバの全てのコンポーネントをリロードする。
- (void)reloadComponent:(NSInteger)component
reloadComponent: †
レシーバの指定したコンポーネントをリロードする。
- (void)reloadComponent:(NSInteger)component
rowSizeForComponent: †
コンポーネント行のサイズを返す。
- (CGSize)rowSizeForComponent:(NSInteger)component
selectedRowInComponent: †
指定したコンポーネントで選択された行のインデックスを返す。
- (NSInteger)selectedRowInComponent:(NSInteger)component
selectRow:inComponent:animated: †
レシーバの指定されたコンポーネンツの行を選択する。
− (void)selectRow:(NSInteger)row inComponent:(NSInteger)component animated:(BOOL)animated
viewForRow:forComponent: †
レシーバの指定した行とコンポーネントに使用されているビューを返す。
- (UIView *)viewForRow:(NSInteger) forComponent:(NSInteger)