2011-10-25 10 views
0

複数のコンポーネント/列を持つUIPickerビューがあります。コンポーネントのサイズが異なる可能性はありますか?UIPickerViewで異なるサイズの複数のコンポーネント/列

あなたは、次の...

- (CGSize)rowSizeForComponent:(NSInteger)component 

は単純に、このメソッドを介して各列(コンポーネント)のために、関連するサイズを返す使用

答えて

2

。ビューをピッカーのデリゲートに設定し、上記のメソッドを実装します。

UPDATE:デイブで指摘したように、私は、デリゲートに1を指定するもので、間違った方法を選んだ...

– pickerView:widthForComponent: 
+0

ありがとうございました。非常に参考になりました。 – gadgetmo

+1

-1これは 'UIPickerView'のインスタンスメソッドです。これをデフォルト以外の値にするには' UIPickerView'をサブクラス化する必要があります。代わりに ''メソッドを使うべきです。 –

+1

絶対にDave、私は間違ったものをタイプしました!それを指摘してくれてありがとう。 –

2

<UIPickerViewDelegate> has a methodあなたは、必要に応じてコンポーネントのカスタム幅を定義するために実装することができます:

- (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component 

あなたUIPickerViewデリゲートオブジェクトは、あなたが好きな任意の数を返すようにこれを実装することができます。この番号は-[UIPickerView rowSizeForComponent:]から返された構造体の.widthとして使用されます。

+0

素晴らしい!このデリゲートメソッドの内部から、このメソッドを実装しなかった場合、ピッカーが選択したはずのサイズを知る方法はありますか? –

+1

@Yarは直接ではありません。あなたは、このメソッドが実装されているか、pickerViewを読み込んでいるのか、 ' - [UIPickerView widthForComponent:]'を求めて保存しているかどうかについて、 '-respondsToSelector:'に横たわってラウンドすることができます。しかし、それは多くの仕事になるでしょう。 :P –

+0

ありがとう。現在、bounds.size.widthの50%未満のものを選択することはできますが、あなたが依存できるもののようには見えません。 –

関連する問題