我需要更改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 中的视图