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

时间:2016-08-21 18:40:26

标签: ios swift button customization

我要实现一个这样的复选框:enter image description here 通过

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

}

但我得到的只是:enter image description here

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

2 个答案:

答案 0 :(得分:0)

我试过你的代码它工作得很好我只改变了这部分 self.addTarget ... 来:

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

当您创建按钮时,将其更改为: CheckBox

答案 1 :(得分:-1)

self.setNeedsLayout()声明的末尾致电didSet。 如果您更改任何子视图,则需要让它更新它的布局和子项。如果有帮助,请告诉我。