我正在尝试设计一个自定义UICollectionViewCell
原型(在Xcode 5.0.2中),但是在设计一个笔尖时,Interface Builder不允许我向我的UICollectionView
添加一个单元格。我可以设置项目(单元格)和Interface Builder创建的数量,如果我使用的是故事板,则可以完美地显示单元格,但我无法在笔尖中将单元格添加到我的集合视图中。我试过了:
我也看到了几个关于同一问题的问题:
他们都指出以编程方式和/或使用另一个笔尖进行细胞处理。我知道怎么做,但有没有办法设计集合视图单元格,在一个集合视图里面的同一个视图,就像在故事板中一样?为什么Interface Builder不允许我在nib中执行此操作,它允许(甚至鼓励)完美地使用故事板?
答案 0 :(得分:26)
简单的答案是否定的,这是不可能做到的。将故事板视为XIB的集合。 XIB只是定义特定视图的构面,以便可以在运行时构建它。
关于集合视图及其故事板实现,了解故事板允许嵌套视图控制器并使用其XIB定义集合视图非常重要,因为这样可以保持故事板的基本范例一致。由于故事板是定义故事的一种方式。或者应用程序的场景,它很自然地允许声明可重用的视图以便在集合视图中使用。
对于XIB而言,这是不可能的,因为XIB背后的基本思想是可重用性。只要控制器使用集合视图注册这些类,这将允许在XIB中定义的集合视图具有与其一起使用的任何单元。这样您就可以获得可重用性的好处,因为另一个控制器可以使用相同的XIB并注册不同的单元格等。
所以我认为允许在XIB内声明集合视图的受支持单元格会更加困惑,因为这违反了XIB所追求的单一责任原则(如果它可以被称为)。
您最好的解决方案是定义一个自定义集合视图子类,在实例化时注册相关单元格,然后在您的XIB中使用此类。