UIPickerView джиттер

У меня есть UIPickerView и UILabel, отдельно друг от друга.

Когда пользователь выбирает строку в UIPickerView, я изменяю текст UILabel с помощью функции делегата:

func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int)
{
    label.text = String(row);
}

Однако по какой-то причине изменение текста метки приводит к тому, что UIPickerView возвращается к началу (первая строка).

Когда я удаляю строку "label.text = String(row);" UIPickerView не прыгает вообще.

Это очень странно, и я не могу найти никакой корреляции между этими двумя элементами.

Заранее благодарю за любые ответы:)

1 ответ

Оказывается, эта "странная магическая ошибка" была связана с тем, что я установил значение по умолчанию для UIPickerViews в viewDidLayoutSubviews() из-за другой ошибки.

Поэтому всякий раз, когда элемент был изменен, вызывался viewDidLayoutSubviews() и значение UIPickerView устанавливалось снова, вызывая его скачок.

Другие вопросы по тегам