2

この問題は私を夢中にさせています。viewDidLoad にロードした UIPickerView があり、画面に表示される選択された行を初期化する必要があります。私のコードは次のとおりです。

self.pickerSkins.delegate = self;
[self.pickerSkins reloadAllComponents];    
NSLog(@"%d", [self.pickerSkins numberOfRowsInComponent:0]);
[self.pickerSkins selectRow:1 inComponent:0 animated:NO];

これをviewDidLoadに入れました。NSLog は 2 の値を記録します。ただし、ポップアップする選択された行は常に最初の行であり、2 番目の行ではありません。

selectRow を viewWillAppear に入れた場合も機能しません。

selectRow を viewDidAppear に配置すると、PickerView が表示され、2 行目に移動します。

更新: 2 行以上ある場合、最後の行までスクロールしない限り、メソッドは viewDidLoad から正しく機能します。最後の行までスクロールしている場合、メソッドはviewDidLoadまたはviewWillAppearでは機能しません。これはなぜですか?ありがとう。

ビューが表示される前に、選択した行を 2 行目にするにはどうすればよいですか?

ありがとう。

4

0 に答える 0