UIPickerView
相互に依存する3つのコンポーネントを持つカスタムがあります(つまり、2番目のコンポーネントは最初のコンポーネントで選択されたものに応じて値を表示し、3番目のコンポーネントは1番目と2番目に依存します)。UIPickerView
から表示されている値を取得していますNSDictionary
。
2つのコンポーネントを同時にスピンすると、アプリがクラッシュすることがある(データをリロードする時間がない)ことを除いて、すべてがうまく機能します。これは私のようにpickerView:didSelectRow:inComponent
見えます:
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
NSLog(@"Selecting row %d component %d", row, component);
// When A is changed, we need to reload B and C
if (component == 0) {
[pickerView reloadComponent:1];
[pickerView selectRow:0 inComponent:1 animated:YES];
// need to reload the C after reloading B
[self pickerView:pickerView didSelectRow:0 inComponent:1];
}
else if (component == 1) {
[pickerView reloadComponent:2];
[pickerView selectRow:0 inComponent:2 animated:YES];
}
[self updateSelection];
}
クラッシュを防ぐために、ユーザーがピッカーの複数のコンポーネントを一度に回転させないようにする方法はありますか?
ありがとう!