iOS使用多个CollectionView重用同一单元格
我不熟悉iOS编程,但从我使用Android的经验来看,我知道你可以为一个项目创建一个设计,可以在多个列表中重复使用,而无需创建副本 在iOS中,我一直在用UICollectionView尝试同样的方法 在我的视图中,我创建了三个水平UICollectionView(具有不同的数据集),它们依次使用自己的单元格(与其他单元格相同)。我不知道如何让其他两个集合使用第一个单元格,所以我不需要反复创建同一个单元格iOS使用多个CollectionView重用同一单元格,ios,swift,xcode,Ios,Swift,Xcode,我不熟悉iOS编程,但从我使用Android的经验来看,我知道你可以为一个项目创建一个设计,可以在多个列表中重复使用,而无需创建副本 在iOS中,我一直在用UICollectionView尝试同样的方法 在我的视图中,我创建了三个水平UICollectionView(具有不同的数据集),它们依次使用自己的单元格(与其他单元格相同)。我不知道如何让其他两个集合使用第一个单元格,所以我不需要反复创建同一个单元格 使用XIB创建新的文件收集单元 在视图控制器中的“item at row for ind
使用单个故事板无法实现这一点。如果要将Interface Builder(xml)文件用于布局,则应创建MyCell.xib文件,然后在该文件上拖动UICollectionViewCell并使用该xib。 然后,您应该将.xib文件与集合视图连接起来,如下所示:
设nib=UINib(nibName:“MyCell”,bundle:nil)
collectionView?.register(无,表示“MyCellReuseID”)
现在你可以用手机了
此外,您还可以在不创建.xib文件的情况下创建MyCell:UICollectionViewCell类,以编程方式在其上创建视图,然后调用
collectionView?.register(MyCell.self,for:“MyCellReuseID”)
函数collectionView(collectionView:UICollectionView,CellForItemIndexPath:NSIndexPath)->UICollectionViewCell
您可以通知collectionview使用哪个单元格
collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell:MyCell = collectionView.dequeueReusableCellWithReuseIdentifier("myCell", forIndexPath: indexPath) as! MyCell
[...]
}
如果你已经定义了你的单元格,你可能会有类似的东西
class MyCell: UICollectionViewCell{
var Label: UILabel!
var imageView: UIImageView!
}
因此,在函数collectionView(collectionView:UICollectionView,cellForItemAtIndexPath-indexPath:NSIndexPath)中,您需要通知collectionView使用哪个单元格
collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell:MyCell = collectionView.dequeueReusableCellWithReuseIdentifier("myCell", forIndexPath: indexPath) as! MyCell
[...]
}
别忘了先注册你的手机
override func viewDidLoad() {
super.viewDidLoad()
//do your stuff
collectionView.delegate = self
collectionView.dataSource = self
collectionView.backgroundColor = UIColor.whiteColor()
collectionView.registerClass(MyCell.self, forCellWithReuseIdentifier: "myCell")
}
瞧 通过将UICollectionViewCell
作为基类来创建Swift类(CollectionViewCell)。执行此操作时,请选择创建nib选项
然后创建一个视图控制器,并将集合视图添加到情节提要中,并在标识检查器中连接此自定义单元格类。基本上,您的结构需要如下所示
如果您使用的是故事板,那么您需要创建3次原型单元,但您可以为每个单元使用相同的自定义类。您可以为单元使用xib,以便在每个集合视图中重新注册。很好!,你有我可以效仿的例子吗?link?@Oreex0查找“自定义UICollectionViewCell Xib Swift”,您应该会收到大量的问题或教程。其中一些可能在“旧Swift”中,但使用自动完成功能查找新版本的方法应该很容易,因为整个逻辑保持不变。如果你了解一点Objective-C,你也可以找到教程。点击这个链接获取完整的教程谢谢你的快速回复,我一直在玩这个,现在我在展开上得到了零。。在cell.label中,xib文件将我的类和“cell”作为标识符。在storyboard CollectionView中,我将单元格设置为相同的标识符和类。解决它时,使用了ised registerNib(UINib.init(nibname:“MyCell”,bundle:nil),forcell.:“MyCell\u identifier”)