2017-06-02 119 views

回答

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 
    } 
} 

快樂編碼代表!

+0

太棒了。這是什麼意思,如果button.tag等於1? – Honey

+0

代碼將切換isScrollEnabled的值。也就是說,如果滾動,如果啓用,按鈕點擊將禁用它,反之亦然。 –

+0

我在問一些不同的東西。糾正我,如果我錯了:默認情況下,按鈕標記設置爲'0'(我的意思是你不需要給它一個初始值,右)...所以一旦它被點擊,你將它設置爲'1'並根據你的決定做出「isScrollEnabled」......你基本上在濫用標籤屬性來做這個操作...... – Honey

相關問題