嗨,我在做食品应用程序,这个应用程序在集合视图单元格中有食物,我在单元格中添加了复选框,所以我可以通过复选框从单元格中选择一些食物,我在集合视图单元格中添加复选框并添加类for按钮,但是当我单击第一个单元格中的复选框时,所有其他单元格都被选中,
复选框代码
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
}
}
}
}
在集合视图中,这个代码
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"
}
}
}
发布于 2015-06-01 04:07:57
1.首先创建一个像arrSelectedCells
这样的全局可变数组
2.在UICollectionView cellForRow
中,将indexpath.row
值设置为“标记为复选框”按钮。
3.在buttonClicked
操作中,从按钮中获取标记值,并将标记值存储在arrSelectedCells
中,并检查标签是否存在于arrSelectedCells
中,如果存在,则删除在arrSelectedCells
中不存在多个相同值标记的it.So。
4.现在,UICollectionView cellForRow
,检查indexpath.row
值是否存在于arrSelectedCells
中,如果存在,则启用复选框,否则禁用复选框。
https://stackoverflow.com/questions/30572732
复制相似问题