发布
社区首页 >问答首页 >uicollectionviewcell快速ios中的自定义复选框

uicollectionviewcell快速ios中的自定义复选框
EN

Stack Overflow用户
提问于 2015-06-01 11:49:17
回答 1查看 1.3K关注 0票数 1

嗨,我在做食品应用程序,这个应用程序在集合视图单元格中有食物,我在单元格中添加了复选框,所以我可以通过复选框从单元格中选择一些食物,我在集合视图单元格中添加复选框并添加类for按钮,但是当我单击第一个单元格中的复选框时,所有其他单元格都被选中,

复选框代码

代码语言:javascript
代码运行次数:0
复制
    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
            }
        }
    }

}

在集合视图中,这个代码

代码语言:javascript
代码运行次数:0
复制
   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"


            }

        }


    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-01 12:07:57

1.首先创建一个像arrSelectedCells这样的全局可变数组

2.在UICollectionView cellForRow中,将indexpath.row值设置为“标记为复选框”按钮。

3.在buttonClicked操作中,从按钮中获取标记值,并将标记值存储在arrSelectedCells中,并检查标签是否存在于arrSelectedCells中,如果存在,则删除在arrSelectedCells中不存在多个相同值标记的it.So。

4.现在,UICollectionView cellForRow,检查indexpath.row值是否存在于arrSelectedCells中,如果存在,则启用复选框,否则禁用复选框。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30572732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档