2016-06-29 10 views
2

こんにちは私はすべてのセルにチェックボックスがあるコレクションビューを持っています。 私はこのチェックボックスhttps://github.com/zhouhao27/WOWCheckboxを使用します。チェックボックスをオンにすると、すべてのチェックボックスがオンになります(スウィフト)

すべてのセルにチェックボックスがありますが、タイトルには問題があります。チェックボックスをタップするとすべてのチェックボックスがオンになっています。 実際に最初のすべてのオッズチェックボックス(1-3-5-7 -...)をタップするとチェックされ、2回目にタップするとすべてのチェックボックスがオンになります。

ビューをセルファイルに接続しました。ドキュメントに記載されているとおり、WOWCheckboxに変更しました。

私は他に何も変わっていません。

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { 
     let cell = collectionView.dequeueReusableCellWithReuseIdentifier("Interest Cell", forIndexPath: indexPath) as! ThirdTabCell 


     cell.check1.tag = indexPath.row 
     cell.check1.addTarget(self, action: #selector(ThirdTab.follow(_:)), forControlEvents: UIControlEvents.TouchUpInside) 

     return cell 



    } 




func follow(sender:WOWCheckbox!) { 
     print("check") 
    } 

チェックボックスをタップするときにこのコードを使用すると、チェックを1回だけ印刷します。 私は何とか私は何をチェックするかを宣言する必要があると信じていますが、私はそれをどのように使用するのかわかりません。

答えて

2
// func follow(sender:WOWCheckbox!) { 
    //  sender.tag//will get the which row you checked 
    //do logic based on tag 
    //} 

//モデル作成

class checkList{ 
    var item = "" 
    var checked = false 
} 

//コントローラ

class SampleViewController: ViewController,WOWCheckboxDelegate{ 

    var List = [checkList]() 

    override func viewDidLoad() { 
    super.viewDidLoad() 
     for i in 1...10 { 
     let object = checkList() 
     object.item = i.description 
     object.checked = false 
     List.append = obj 
    } 
    _collectionview.reloadData() 
    } 

    func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { 
    let cell = collectionView.dequeueReusableCellWithReuseIdentifier("Interest Cell", forIndexPath: indexPath) as! ThirdTabCell 


    cell.check1.tag = indexPath.row 
    if List[indexPath.row].checked { 
    cell.check1.isChecked = true 
    } 
    else{ 
    cell.check1.isChecked = false 
    } 

    return cell 
    } 
    //delegate function by WOWCheckbox 
    func didSelectCheckbox(checkbox : WOWCheckbox) { 

     if checkBox.tag == 0{ 
     //first row 
     for i ...< List.count { 
      if i % 2 != 0 { 
       List[i].checked = true 
      } 
      else{ 
       List[i].checked = false 
      } 
      collectionView.reloadData() 
      return 
      } 
     } 
     //second row 
     else if checkBox.tag == 1{ 

      for obj in List { 
      obj.checked = true 
      } 
      collectionView.reloadData() 
      return 
     } 
     else { 
      if list[checkbox.tag].isChecked { 
      checkBox.isChecked = false 
      list[checkbox.tag].checked = false 
      } 
      else{ 
      list[checkbox.tag].checked = true 
      checkBox.isChecked = true 
      } 
     } 
     } 
    } 

私は

+0

があなたのためにあなたに感謝あなたの条件に応じてコードをチェックして、変更してくださいテストされていませんでした私は本当にあなたを理解することができません。もっと説明してください。 –

+0

関数の呼び出しの前にチェックが行われています 自分のコードがなくても試してみました。すべてチェックします。チェックボックスが選択されていることを確認するのに –

+0

タグが使用されています。 (cell.check1.tag = indexPath.row)あなたは既にthat.soに与えられたcheckBoxをクリックすると、どのメソッドが選択されているかを取得します。あなたの質問に言及した内容に基づいてロジックを実行することができます。 –

関連する問題