UIPickerView自定义布局与.xib文件

时间:2015-07-04 10:19:06

标签: swift cocoa-touch uipickerview

我正在尝试创建一个自定义UIPicker,其中每个项目都是.xib文件实例。

我的代码出现Array index out of range错误:

enter image description here

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
}

3 个答案:

答案 0 :(得分:0)

您需要检查这两个条件。

  • .xib文件需要在顶层包含至少一个视图
  • 该文件确实命名为" customItem.xib" (而不是" CustomItem"或其他)。

如果是这样,您的代码应该有效。

答案 1 :(得分:0)

正如Mundi说你正在做的事情应该有效,但可能不太好。

我预测这样做会太慢,并会使你的选择器视图“口吃”。

您发布的代码的另一个问题是,每次选择器请求视图时,它都会创建加载视图的新副本。如果用户滚动选择器视图然后向后滚动,则将重新创建先前加载的单元格。

我建议您在首次加载选取器视图时将视图预加载到数组中。然后,当选择器视图请求时,只需从数组中获取视图。

答案 2 :(得分:0)

我在Custom View文件中将根视图从View更改为.xib

但是不支持拖动View,我从github示例项目中复制.xib文件。