UIPickerView不重用以前的组件视图

时间:2017-01-06 10:33:47

标签: ios swift uipickerview

我需要更改UIPickerView的字体并使用委托方法,如下所示。

func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView
{
    var pickerLabel = view as? UILabel;

    if (pickerLabel == nil)
    {
        pickerLabel = UILabel()

        pickerLabel?.font = UIFont(name: (pickerLabel?.font.fontName)!, size: 15)
        pickerLabel?.textAlignment = NSTextAlignment.center
    }

    pickerLabel?.text = myData[row]

    return pickerLabel!
}

据我了解documentation,一旦我创建了UILabel视图,就应该重用它们。但是,“view”参数始终为nil。每次我旋转拾取器,它都会创建一个新的UILabel。这似乎效率低下,并且无法使用“重用”参数。

这是一个错误还是我误解了它应该如何工作?

谢谢,

儒略

1 个答案:

答案 0 :(得分:0)

是的,这是一个iOS系统错误。即使在iOS 10.2上也没有修复它。检查相关问题:Reusing view in UIPickerView with iOS 7