无法为自定义按钮设置设置图像

Can not set set image for custom button

我要像这样实现一个复选框: 通过

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
    }
}

}

但我得到的是:

你能解释一下发生了什么吗?

didSet 语句的末尾调用 self.setNeedsLayout()。 如果您更改任何子视图,您需要要求它更新它的布局和子视图。让我知道是否有帮助。

我试过你的代码,它工作正常我只改变了这部分 self.addTarget... 到:

self.addTarget(self, action: #selector(CheckBox.buttonClicked(_:)), forControlEvents: .TouchUpInside)

并在创建按钮时将其 class 更改为:CheckBox