在多个UICollectionViews中重用UICollectionViewCell

时间:2017-11-26 02:20:48

标签: ios swift

我想做类似的事情,其中​​A,B和C都是不同的UICollectionViewController。我目前的方法是手动将故事​​板中的单元格复制到所有不同的UICollectionViews,但它们都具有相同的自定义子类。但是,它不是用于UI开发的DRY,我必须手动更改复制每个UICollectionViewCell副本中的更改。

我知道可以使用XIB来实现这一目标,但我仍然坚持如何通过故事板或最小的Swift代码将其链接到所有UICollectionViewController

Screenshot

1 个答案:

答案 0 :(得分:1)

@Anushik使用以下步骤使用xib创建自定义单元格并重复使用

1.与xib一起创建UICollectionViewCell子类

2.将重用标识符添加到单元格

3.在UIViewController类的viewDidLoad方法中使用register(nib:forCellWithReuseIdentifier)方法注册nib

let nib = UINib(nibName: "CustomCollectionViewCell", bundle: nil)
collectionView.register(nib, forCellWithReuseIdentifier: "CustomCell")

4.在UICollectionViewDatasource的cellForItemAt方法中使用自定义单元格

override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "CustomCell", for: indexPath) as! CustomCollectionViewCell
    let item = items[indexPath.row]
    cell.configureCell(item: item)
    return cell
}