我正在尝试创建一个自定义UIPicker,其中每个项目都是.xib
文件实例。
我的代码出现Array index out of range
错误:
func pickerView(pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusingView view: UIView!)->UIView {
return NSBundle.mainBundle().loadNibNamed("CustomItem", owner: self, options: nil)[0] as! UIView
}
答案 0 :(得分:0)
您需要检查这两个条件。
.xib
文件需要在顶层包含至少一个视图如果是这样,您的代码应该有效。
答案 1 :(得分:0)
正如Mundi说你正在做的事情应该有效,但可能不太好。
我预测这样做会太慢,并会使你的选择器视图“口吃”。
您发布的代码的另一个问题是,每次选择器请求视图时,它都会创建加载视图的新副本。如果用户滚动选择器视图然后向后滚动,则将重新创建先前加载的单元格。
我建议您在首次加载选取器视图时将视图预加载到数组中。然后,当选择器视图请求时,只需从数组中获取视图。
答案 2 :(得分:0)
我在Custom View
文件中将根视图从View
更改为.xib
。
但是不支持拖动View
,我从github示例项目中复制.xib
文件。