2017-06-02 10 views

答えて

3

は、ボタンアクションのcellForItem

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 
    // dequeue cell and assign delegate 
    var cell: CustomCell? 
    cell.delegate = self 
    return cell 
} 

コール細胞のデリゲート内のセルにあなたのセル

protocol CustomCellDelegate: class { 
    func cellDidSetScrolling(enabled: Bool) 
} 

class CustomCell: UICollectionViewCell { 

    var delegate: CustomCellDelegate? 

    // .... 
} 

割り当てデリゲートのカスタムデリゲートを作成します。 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を使用しています!

+0

驚くばかりです。 button.tagが1の場合はどういう意味ですか? – Honey

+0

コードはisScrollEnabledの値を切り替えます。つまり、有効になっている場合はスクロールするとボタンタップで無効になり、無効にすると無効になります。 –

+0

私は別のものを求めています。私が間違っていると私を訂正してください:デフォルトでは、ボタンのタグは '0'に設定されています(つまり、最初の値を与える必要はありません)...それをクリックすると' 1 'それに基づいて 'isScrollEnabled'の決定を下してください...あなたは基本的に、この操作を行うためにタグプロパティを乱用しています... – Honey

関連する問題