1
是否有可能通過在集合視圖Cell .swift文件中編寫代碼來停止滾動我的集合視圖。我希望能夠在用戶點擊單元格中的按鈕時停止滾動,然後再次按下按鈕時允許滾動。控制collectionView從collectionView中滾動單元格
是否有可能通過在集合視圖Cell .swift文件中編寫代碼來停止滾動我的集合視圖。我希望能夠在用戶點擊單元格中的按鈕時停止滾動,然後再次按下按鈕時允許滾動。控制collectionView從collectionView中滾動單元格
爲你的創建自定義的委託
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
}
}
快樂編碼代表!
太棒了。這是什麼意思,如果button.tag等於1? – Honey
代碼將切換isScrollEnabled的值。也就是說,如果滾動,如果啓用,按鈕點擊將禁用它,反之亦然。 –
我在問一些不同的東西。糾正我,如果我錯了:默認情況下,按鈕標記設置爲'0'(我的意思是你不需要給它一個初始值,右)...所以一旦它被點擊,你將它設置爲'1'並根據你的決定做出「isScrollEnabled」......你基本上在濫用標籤屬性來做這個操作...... – Honey