2011-09-28 10 views
6

デリゲートメソッドを使用して行が有効かどうかを確認し、そうでない場合は右側にスクロールする方法を教えてください。特定のUIPickerViewアイテムで選択を無効にすることはできますか?

しかし、それは私が欲しいものではありません。 pickerViewの初期化後に特定の行を無効にすることはできますか? 行を「グレイアウト」して、行を停止することはできません。

ありがとうございます。

答えて

10

これを行うには2つの部分があります。

  1. -[<UIPickerViewDelegate> pickerView:viewForRow:forComponent:reusingView:]を使用して、UILabelなどの各行のカスタム表示を返します。無効と表示したい行については、その無効を反映するようにビューを構成する必要があります。
  2. -[<UIPickerViewDelegate> pickerView:didSelectRow:inComponent:]では、無効になっていることを検出してから、-[UIPickerView selectRow:inComponent:animated:]を使用して「有効な」行に「ロールバック」する必要があります。
+1

私は、今、いくつかのアイデアを持っているあなたに感謝。 – mineschan

+1

情報ありがとうございました...それは完璧に動作します.... – iOSAppDev

0

あなたはまた、単に実装では空白のままにしておくことができ、例えば:

- (void)pickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component { 
    if(row==0){ 
//Code 
} 
if(row==1){ 

//BLANK 

} 
if(row==2){ 
//Code 
} 
関連する問題