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!
}

据我了解文档,一旦我创建了 UILabel 视图,它们就应该被重用。但是,"view"参数始终为零。每次旋转选取器时,它都会创建一个新的 UILabel。这似乎效率低下,并且违背了具有"重用"参数的对象。

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

谢谢

朱利安

是的,这是一个iOS系统错误。即使在iOS 10.2上也没有修复。检查相关问题:在 iOS 7 中重用 UIPickerView 中的视图

最新更新