Iphone SDK: Как установить начальное значение UIPickerView?
У меня есть представление выбора, у которого есть список чисел, которые нужно выбрать. Я хочу иметь возможность инициализировать элемент управления в определенной строке. Например, если пользователь задает значение 10 по умолчанию, тогда элемент управления должен автоматически располагаться в этой строке, когда элемент управления сначала инициализируется.
Спасибо заранее.
Ответы
Ответ 1
Вы вызываете selectRow:inComponent:animated:
и передаете ему индекс выбранной строки.
Этот код заставляет UIPickerView
прокручивать свои номера от 0 до 60, прежде чем опуститься на 0.
- (void)viewDidAppear:(BOOL)animated {
[thePicker selectRow:60 inComponent:0 animated:YES];
[thePicker reloadComponent:0];
[thePicker selectRow:60 inComponent:1 animated:YES];
[thePicker reloadComponent:1];
[thePicker selectRow:0 inComponent:0 animated:YES];
[thePicker reloadComponent:0];
[thePicker selectRow:0 inComponent:1 animated:YES];
[thePicker reloadComponent:1];
}
В вашем случае, чтобы отобразить строку десятку, вы вызываете что-то вроде:
[thePicker selectRow:10 inComponent:0 animated:YES];
Ответ 2
Что вы можете сделать, а не выбирать строку, чтобы заставить pickerview найти нужное значение. Способ создания цикла, чтобы найти его в массиве и выбрать его:
- (void)viewDidAppear:(BOOL)animated{
int i = 0;
for(NSString* number in arrayName)
{
if ([stringValue isEqualToString:number]){
[pickerViewName selectRow:i inComponent:0 animated:YES ];
}
i++;
}
}
Ответ 3
Если вы используете UITextField
с UIPickerView
[self.text_field setInputView:self.picker];
затем используйте это:
self.text_field.text = [_myarray objectAtIndex:10];