iphone SDK: как установить начальное значение UIPickerView? - PullRequest
18 голосов
/ 28 октября 2009

У меня есть окно выбора, в котором есть список номеров для выбора. Я хочу иметь возможность инициализировать элемент управления в определенной строке. Например, если пользователь указывает 10 в качестве значения по умолчанию, тогда элемент управления должен автоматически располагаться в этой строке при первой инициализации элемента управления.

Заранее спасибо.

Ответы [ 4 ]

55 голосов
/ 28 октября 2009

Вы вызываете 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];
0 голосов
/ 09 октября 2018

Попробуйте, у меня это работает, всего одна строка кода.

В Objective-C

   [self.picker selectRow:2 inComponent:0 animated:YES];

In Swift

  picker.selectRow(2, inComponent:0, animated:true)

Надеюсь, это кому-нибудь поможет.

0 голосов
/ 10 декабря 2015

Если вы используете UITextField с UIPickerView

[self.text_field setInputView:self.picker];

затем используйте это:

self.text_field.text = [_myarray objectAtIndex:10];
0 голосов
/ 16 ноября 2015

Вместо выбора строки можно сделать так, чтобы просмотрщик нашел нужное значение. Способ заключается в создании цикла, чтобы найти его в массиве и выбрать его:

- (void)viewDidAppear:(BOOL)animated{    
    int i = 0;
    for(NSString* number in arrayName)
    {
        if ([stringValue isEqualToString:number]){
            [pickerViewName selectRow:i inComponent:0 animated:YES ];
        }
        i++;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...