【问题标题】:Can not set set image for custom button无法为自定义按钮设置设置图像
【发布时间】:2016-08-21 18:40:25
【问题描述】:

我将实现一个这样的复选框:

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

}

但我得到的都是:

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

【问题讨论】:

  • 您创建按钮的位置

标签: ios swift button customization


【解决方案1】:

我尝试了您的代码,它工作正常我只将这部分 self.addTarget... 更改为:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2021-06-03
      • 2012-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-16
      • 1970-01-01
      • 2013-09-27
      • 2011-02-15
      相关资源
      最近更新 更多