1

我有一个 UIPickerView 和一个 UILabel,彼此分开。

当用户在 UIPickerView 中选择一行时,我使用委托函数更改 UILabel 文本:

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

然而由于某种原因,更改标签的文本会导致 UIPickerView 跳回顶部(第一行)。

当我删除“label.text = String(row);”行时 UIPickerView 根本不跳。

这很奇怪,我找不到这两个元素之间的任何关联。

提前感谢您的任何回复:)

4

1 回答 1

0

事实证明,这个“奇怪的神奇错误”是由于我在 viewDidLayoutSubviews() 中设置了 UIPickerViews 的默认值,因为另一个错误。

因此,每当更改元素时,都会调用 viewDidLayoutSubviews() 并再次设置 UIPickerView 的值,从而导致其跳转。

于 2017-03-08T00:03:11.877 回答