Как прокрутить до определенной строки в UIPickerView в iOS Swift 3

У меня есть UIPickerView со значениями 0...250. Есть 2 компонента в UIPickerView, В первом компоненте я отображаю эти значения. но я хочу обнаружить метод прокрутки UIPickerView, потому что, когда появляется pickerView, значение, которое я хотел бы отобразить, равно 75. означает, что pickerView прокручивается до строки номер 75. и пользователь может прокручивать вверх и вниз сборщик со значениями 0...250. Я пробовал этот код в UIPickerViewtitleForRow row: Int метод

pickerView.selectRow(75, inComponent: 0, animated: true)

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

но проблема в том, что при прокрутке pickerView мое приложение вылетает со следующей ошибкой

[__NSArrayM objectAtIndex:]: index 1 beyond bounds [0 .. 0]'

кто-нибудь, помогите мне, пожалуйста, спасибо заранее:-)

1 ответ

Хотя внутри viewDidLoad метод, ваш сборщик пуст. Это можно сделать, если вы отложите выполнение вызова select до окончания загрузки данных. Скорее всего, одного цикла будет достаточно.

Вы можете добавить его в viewDidAppear или же viewWillAppear

Это происходит, потому что вы прокручиваете до index 75 до pickerView инициализировал, что cell. UIPickerView Сначала инициализирует только видимые ячейки, а при прокрутке инициализирует остальные ячейки.

Сделайте это в viewDidAppear

override func viewDidAppear(_ animated: Bool) {
    pickerView.selectRow(75, inComponent: 0, animated: true)
}
Другие вопросы по тегам