class CheckBox: UIButton {
let checkedImage = UIImage(named: "checked")
let uncheckedImage = UIImage(named: "unchecked")
var checked : Bool = false{
didSet{
if checked == false{
self.setImage(uncheckedImage, forState: .Normal)
}else {
self.setImage(checkedImage, forState: .Normal)
}
}
}
override func awakeFromNib() {
self.addTarget(self, action: "buttonClicked:", forControlEvents: .TouchUpInside)
checked = false
}
func buttonClicked(sender: UIButton){
if (sender == self){
checked = !checked
}
}
}
你能解释一下发生了什么吗?
答案 0 :(得分:0)
我试过你的代码它工作得很好我只改变了这部分 self.addTarget ... 来:
self.addTarget(self, action: #selector(CheckBox.buttonClicked(_:)), forControlEvents: .TouchUpInside)
当您创建按钮时,将其更改为: CheckBox
答案 1 :(得分:-1)
在self.setNeedsLayout()
声明的末尾致电didSet
。
如果您更改任何子视图,则需要让它更新它的布局和子项。如果有帮助,请告诉我。