是否可以通过在集合视图Cell .swift文件中编写代码来阻止我的集合视图滚动。我希望能够在用户点击单元格中的按钮时停止滚动,然后在再次按下按钮时允许滚动。
答案 0 :(得分:3)
为您的单元格创建自定义委托
protocol CustomCellDelegate: class {
func cellDidSetScrolling(enabled: Bool)
}
class CustomCell: UICollectionViewCell {
var delegate: CustomCellDelegate?
// ....
}
将委托分配给cellForItem
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
// dequeue cell and assign delegate
var cell: CustomCell?
cell.delegate = self
return cell
}
按钮操作调用单元格委托。使用button.tag
确定enabled
值
func buttonAction() {
button.tag = button.tag == 0 ? 1 : 0 // toggle value
delegate?.cellDidSetScrolling(enabled: button.tag == 1)
}
在ViewController
class ViewController: UIViewController, CustomCellDelegate {
func cellDidSetScrolling(enabled: Bool) {
collectionView.isScrollEnabled = enabled
}
}
快乐的编码!