Можно ли программно прокрутить до нужной строки в UIPickerView?

ios objective-c swift uipickerview

29056 просмотра

5 ответа

По умолчанию первая строка подсвечивается после инициализации UIPickerView. Как выделить конкретную строку или прокрутить до определенной строки программно?

Автор: pradeepa Источник Размещён: 05.07.2019 10:36

Ответы (5)


63 плюса

Решение

Как всегда, это тщательно документировано. В документации Apple для UIPickerViewвас должно быть указано, что этот метод, вероятно, вам нужен – selectRow:inComponent:animated:.

Автор: warrenm Размещён: 04.02.2011 05:00

35 плюса

Если вы хотите вызвать метод делегата pickerView: didSelectRow: inComponent, вы должны вызвать его вручную:

Obj-C,

[self.myPickerView selectRow:0 inComponent:0 animated:NO];
[self pickerView:self.myPickerView didSelectRow:4 inComponent:0];

стриж

self.myPickerView.selectRow(0, inComponent: 0, animated: false)
self.pickerView(self.myPickerView, didSelectRow: 0, inComponent: 0)
Автор: Tom Calmon Размещён: 16.07.2015 08:53

33 плюса

Да очень просто [picker selectRow:row inComponent:component animated:NO];

Автор: Rich Размещён: 04.02.2011 04:59

2 плюса

Работа в iOS 9 с XCode 7.3 для внесения изменений во время выполнения в данные в представлении выбора, называемом fieldPicker:

// first load your new data to your picker view's data source (not shown here...) then load the data into the picker view using it's delegate
    [self.fieldPicker reloadAllComponents];

    // now that the data is loaded, select a row in the picker view through it's delegate
    [self.fieldPicker selectRow:([self.theFields count] - 1) inComponent:0 animated:NO];

// retrieve the row selected in the picker view to use in setting data from your data source in textboxes etc.
    long row = (long)[self.fieldPicker selectedRowInComponent: 0];
Автор: Spanky Размещён: 12.06.2016 10:36

0 плюса

Проверьте, вызываете ли вы метод self.myPickerView.selectRow(0, inComponent: 0, animated: false) после добавления pickerView в качестве подпредставления.

Во-первых, я вызвал метод, прежде чем я добавил pickerView в качестве подпредставления, и он не работал. Поэтому я позвонил потом, и тогда это сработало!

Возможно, это довольно очевидно и не самый умный мой ход, но все же, может быть, у кого-нибудь когда-нибудь возникнет такая же проблема, и я надеюсь, что смогу помочь! :)

Автор: Mitemmetim Размещён: 02.07.2019 05:33
Вопросы из категории :
32x32