我在两个复选框下面有一个同意按钮。我想启用同意按钮,并且在勾选这两个复选框后,还要更改同意按钮的颜色。我使用了复选框的自定义图像。 我使用这个代码如果在swift中检查复选框,如何更改按钮颜色?
这是我的UIButton类
let selectedImage = UIImage(named: "checkbox_checked")
let unselectedImage = UIImage(named: "checkbox_unchecked")
class Qbutton: UIButton {
//Bool Property
var isChecked:Bool = false{
didSet{
if isChecked {
self.setImage(selectedImage, forState: UIControlState.Normal)
}else{
self.setImage(unselectedImage, forState: UIControlState.Normal)
}
}
}
override init(frame: CGRect){
super.init(frame:frame)
self.layer.masksToBounds = true
self.setImage(unselectedImage, forState: UIControlState.Normal)
self.addTarget(self, action: "buttonClicked:", forControlEvents: UIControlEvents.TouchUpInside)
self.isChecked = false
}
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)!
}
func buttonClicked(sender: UIButton) {
if(sender == self){
if isChecked == true{
isChecked = false
print("true")
self.setImage(unselectedImage, forState: UIControlState.Normal)
}else{
isChecked = true
print("false")
self.setImage(selectedImage, forState: UIControlState.Selected)
}
NSUserDefaults.standardUserDefaults().setObject(isChecked, forKey: "isBtnChecked")
NSUserDefaults.standardUserDefaults().synchronize()
}
}
}
这是我的视图控制器类WHERE我使用QBUTTON CLASS
checkBoxOne = Qbutton(frame: CGRectMake(X,Y,WIDTH,HEIGHT))
isChecked = NSUserDefaults.standardUserDefaults().boolForKey("isBtnChecked")
checkBoxOne.isChecked = isChecked
self.view.addSubview(checkBoxOne)
checkBoxTwo = Qbutton(frame: CGRectMake(X,Y,WIDTH,HEIGHT))
checkBoxTwo.isChecked = isChecked
self.view.addSubview(checkBoxTwo)
现在我想改变的颜色如果用户检查两个复选框,则同意按钮。
Rahul;发布你现在的代码!更具体一点,你可以改变背景,你可以改变图像,文字颜色?一个,两个,十个复选框,应该是微不足道的,你只需要追踪有多少已被检查。 KVO将是触发颜色变化的几个选项之一。 – user3069232