UIPickerView抖动

时间:2017-03-01 22:59:58

标签: swift uipickerview uipickerviewdelegate

我有一个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 个答案:

答案 0 :(得分:0)

原来这个“奇怪的魔法错误”是由于我在viewDidLayoutSubviews()中设置了UIPickerViews的默认值,这是由于另一个错误。

因此,每当元素被更改时,调用viewDidLayoutSubviews()并再次设置UIPickerView的值,使其跳转。