gpt4 book ai didi

ios - 是否可以重用 cellForItemAtIndexPath :?

转载 作者:搜寻专家 更新时间:2023-11-01 07:31:21 24 4
gpt4 key购买 nike

我有两个 Collection View 。它们都使用相同的单元格布局,但出于其他原因,它们必须是单独的 Controller 。目前,当我更新 cellForItemAtIndexPath: 时,我必须将更改复制并粘贴到另一个。

有没有办法让我分离出这一种方法,以便我可以在一个地方进行更改并将它们反射(reflect)在两个 Controller 中?其中一个 Controller 是 UIViewController 子类。另一个是自定义 UIViewController 子类的子类。

最佳答案

您可以创建一个单独的数据源类,然后您可以将 collectionview 数据源链接到它。

你的数据源会是这样

class CollectionViewDataSource: NSObject, UICollectionViewDataSource {

var dataArray:[YourObjects]?

func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return dataArray!.count ?? 0
}

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier("YourCellIdentifier", forIndexPath: indexPath) as! UICollectionViewCell

return cell
}
}

你可以像这样在你的 Controller 中放置它

lazy var collectionViewDataSource: CollectionViewDataSource = {
return CollectionViewDataSource()
}()

@IBOutlet weak var collectionView: UICollectionView! {
didSet{
collectionViewDataSource.dataArray = //Your array
collectionView.dataSource = collectionViewDataSource
}

关于ios - 是否可以重用 cellForItemAtIndexPath :?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32373307/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com