你總是可以走了視圖層次:
var parentCollectionView = self.superview
while parentCollectionView is UICollectionView != true {
parentCollectionView = parentCollectionView?.superview
}
如果你需要經過多個可以更改UICollectionView上面你正在尋找的子類收集意見。更簡單的方法是隻給你的單元格對cellViewItemAtIndexPath中的collectionView的弱引用;這也適用於您的視圖控制器,而不是您的collectionView,這可能是您真正想要參考的。由於collectionView保留了單元格,所以它必須很弱。否則你創建一個循環。
class CustomCollectionViewCell: UICollectionViewCell {
weak var customCollectionViewController: CustomCollectionViewController?
}
class CustomCollectionViewController: UICollectionViewController {
override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: String(describing: CustomCollectionViewCell.self), for: indexPath) as! CustomCollectionViewCell
cell.customCollectionViewController = self
return cell
}
}
我希望這個鏈接https://github.com/VikasPrajapati27/CollectionViewFocus會幫助你。 –