内容の保証はできません。


/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)


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-11-20 (日) 00:35:28 (2191d)