uicollectionviewcell 中的自定义复选框 swift ios
custom checkbox in uicollectionviewcell swift ios
嗨,我正在开发食物应用程序,该应用程序在 collectionviewcell 中有食物,我在单元格中添加了复选框,所以我如何 select 通过复选框从单元格中获取一些食物,
我在集合视图单元格中添加复选框并为按钮添加 class 但是当我单击第一个单元格中的复选框时,所有其他单元格都是 selected,
复选框代码
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"
}
}
}
1.First 创建一个全局可变数组,如 arrSelectedCells
2.Now 在 UICollectionView cellForRow
中将 indexpath.row
值设置为复选框按钮的标签。
3.In buttonClicked
动作,从按钮中获取标签值并将标签值存储在 arrSelectedCells
中,同时检查标签是否存在于 arrSelectedCells
中是否存在present 然后删除 it.So arrSelectedCells
.
中不存在多个相同值的标签
4.Now,UICollectionView cellForRow
,检查 indexpath.row
值是否存在于 arrSelectedCells
中,如果存在则启用该复选框,否则禁用该复选框。
嗨,我正在开发食物应用程序,该应用程序在 collectionviewcell 中有食物,我在单元格中添加了复选框,所以我如何 select 通过复选框从单元格中获取一些食物, 我在集合视图单元格中添加复选框并为按钮添加 class 但是当我单击第一个单元格中的复选框时,所有其他单元格都是 selected,
复选框代码
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"
}
}
}
1.First 创建一个全局可变数组,如 arrSelectedCells
2.Now 在 UICollectionView cellForRow
中将 indexpath.row
值设置为复选框按钮的标签。
3.In buttonClicked
动作,从按钮中获取标签值并将标签值存储在 arrSelectedCells
中,同时检查标签是否存在于 arrSelectedCells
中是否存在present 然后删除 it.So arrSelectedCells
.
4.Now,UICollectionView cellForRow
,检查 indexpath.row
值是否存在于 arrSelectedCells
中,如果存在则启用该复选框,否则禁用该复选框。