我正在使用委托在UICollectionViewCell
和UICollectionViewController
之间建立连接。在这方面,我想说的是,如果用户单击UIView
的其超类已更改,则我已经通过手势完成了操作。
唯一的问题是,我认为我必须将此委托实施到didSelectItemAt
'的UIcollectionView
协议中,我不确定该怎么做。
例如,首先我在cellForItemAt
中做到了,这是一个错误,我可以轻松实现。
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "listCell", for: indexPath) as? ListCell
cell?.selectionDelegate = self // implement the delegate
}
但是我不知道如何在didSelectItemAt
中做同样的事情,因为我认为我应该在这里而不是在cellForItemAt
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
}
非常感谢您的提前帮助
答案 0 :(得分:0)
假设您有原始选择代表:
protocol SelectionDelegate {
func didSelect(_ cell: ListCell)
}
然后,您只需调用选择委托即可轻松实现collectionView的didSelect:
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
guard let cell = collectionView.cellForItem(at: indexPath) as? ListCell else { return }
didSelect(cell)
}