我似乎找不到任何关于如何实现这一目标的信息,而我试图实现的是一些难以解释的东西,但这里是:
我有一个UIViewController,它加载我用XIB创建的可重用UIViews的“堆栈”。在每个可重用的UIView中都有一个CollectionView,它为数组中的每个字符串创建一个自定义CollectionViewCell。
我不知道如何做到这一点。没有任何线索,也没有任何网上报道这种确切的情况。这似乎比任何其他解释都要深一层。每次我试图为CollectionView创建单元格时,我都会得到一个错误:“必须为标识符注册一个nib或类,或者在故事板中连接一个原型单元格”。
发布于 2017-07-04 23:41:59
弄明白了。是的,如果您想在XIB中使用CollectionView,并且您有一个自定义CollectionViewCell,那么您必须为CollectionViewCell创建一个XIB。在本例中,不能只拥有没有XIB的。然后,在包含XIB的ViewController中,必须使用:
xibView.collectionView.register(UINib(nibName: "CustomCollectionViewCell", bundle: nil), forCellWithReuseIdentifier: "CustomCollectionViewCell")大多数教程都说要在viewDidLoad中做到这一点,但是我在ViewController中创建的不仅仅是一个XIB,而是基于从数据库中提取的数据创建的一组XIB。所以我在构建每个XIB的循环中这样做。我担心这样做行不通,但确实如此。
为什么你要这么做的原因一直困扰着我。
发布于 2017-07-04 23:52:55
您可以为集合单元格注册一个nib,如下所示:
let cellNib = UINib(nibName: "MyCellAsNib", bundle: nil)
collectionView?.registerNib(cellNib, forCellWithReuseIdentifier: "myCell")然而,在我看来,使用一个带有节和原型单元格的CollectionViewController要容易得多,而不是使用多个CollectionViews的自定义UIView‘堆栈’。这正是CollectionViewController设计的目的。
https://stackoverflow.com/questions/44915136
复制相似问题