2015-06-01 3 views
1

привет, я работаю над пищевым приложением, приложение имеет продукты в коллекции viewview, и я добавил флажок в ячейке, поэтому, как я могу выбрать некоторые продукты из ячейки по флажку, я добавляю флажок в ячейке просмотра коллекции и добавить класс для кнопки, но когда я нажимаю на флажок в первой ячейке на все остальные клетки выбирают,custom checkbox in uicollectionviewcell swift ios

чекбокс код

var isCheckedGlobal = Bool() // !! Global Variable // You might need to change '= Bool()' to '= false' or '= true' 

class CheckBox: UIButton { 

    //images 

    let checkedImage = UIImage(named: "checked") as UIImage? 
    let unCheckedImage = UIImage(named: "unchecked")as UIImage? 


    //bool propety 
    var isChecked:Bool = false{ 
     didSet{ 
      if isChecked == true{ 
       self.setImage(checkedImage, forState: .Normal) 
      }else{ 
       self.setImage(unCheckedImage, forState: .Normal) 
      } 
     } 
    } 

    override func awakeFromNib() { 
     self.addTarget(self, action: "buttonClicked:", forControlEvents: UIControlEvents.TouchUpInside) 
     self.isChecked = false 
    } 

    func buttonClicked(sender:UIButton) { 
     if(sender == self){ 
      if isChecked == true{ 
       isChecked = false 
       isCheckedGlobal = false // !! Set variable's value 
      }else{ 
       isChecked = true 
       isCheckedGlobal = true // !! Set variable's value 
      } 
     } 
    } 

} 

и CollectionView этот код

if let foodcodes = self.menu![indexPath.row]["code"] as? NSString { 



     if isCheckedGlobal == false { 

      cell.foodNumber.enabled = false 
      cell.foodNumber.text = "" 

     } else { 

      if cell.foodNumber.tag == cell.checkboxx.tag { 
      cell.foodNumber.enabled = true 
      cell.foodNumber.text = "1" 


      } 

     } 


    } 

ответ

0

1.First сделать глобальный изменяемый массив как arrSelectedCells

2.Now в UICollectionView cellForRow установить indexpath.row значение в качестве метки для кнопки флажок.

3.In buttonClicked действия, получить значение тега от кнопки и сохранить значение тега в arrSelectedCells, а также проверить, если тег присутствует в arrSelectedCells, если он присутствует, то удалить it.So что несколько тегов и то же значения нет в arrSelectedCells.

4.Now, UICollectionView cellForRow, проверьте, если indexpath.row значение присутствует в arrSelectedCells, если присутствует, то включить флажок в противном случае отключить флажок.