2016-08-21 53 views
0

我要实现这样一个复选框: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

莫非你解释发生了什么?

+0

你在哪里创建了按钮 –

回答

0

我想你的代码,它工作得很好,我只改变了这部分self.addTarget ...到:

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

,当你创建按钮类更改为:复选框

0

致电self.setNeedsLayout()您的didSet声明结束时。 如果您更改任何子视图,您需要让它更新它的布局和子项。让我知道这是否有帮助。