我是iOS编程的新手,但根据我对Android的经验,我知道您可以为可以在多个列表中重复使用的项目创建一个设计,而无需创建副本。
在iOS中,我一直在尝试使用UICollectionView的相同方法。
在我看来,我创建了三个水平UICollectionViews(具有不同的数据集),这些视图又使用自己的单元格(与其他单元格相同)。我不知道如何让其他两个系列使用第一个单元格,所以我不需要反复重建同一个单元格。
答案 0 :(得分:2)
使用单个故事板无法实现此目的。如果要使用Interface Builder(xml)文件进行布局,则应创建MyCell.xib文件,然后在该文件上拖动UICollectionViewCell并使用该xib。
然后你应该将.xib文件与你的集合视图连接如下:
let nib = UINib(nibName: "MyCell", bundle: nil)
collectionView?.register(nil, for: "MyCellReuseID")
你现在可以和你的手机一起工作了。
您也可以在不创建.xib文件的情况下创建MyCell:UICollectionViewCell类,以编程方式创建视图,然后调用collectionView?.register(MyCell.self, for: "MyCellReuseID")
答案 1 :(得分:1)
在您的函数collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell
中,您可以通知收集查看要使用的单元格
如果你定义了你的单元格,你可能会有类似的东西
class MyCell: UICollectionViewCell{
var Label: UILabel!
var imageView: UIImageView!
}
因此,在您的函数collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath)
中,您需要通知您的集合视图使用哪个单元格
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")
}
和瞧!
答案 2 :(得分:0)
答案 3 :(得分:0)