我试图在swift中实现一个复选框。我用另一个post的答案开始。
首先,我在故事板中创建了一个按钮,并给了它“类”复选框。之后,我创建了类复选框。现在看起来是这样的。我从另一个职位做了一些调整,因为他用的是不同版本的swift。
class checkbox: UIButton {
//Images
let checkedImage = UIImage(named: "selected")! as UIImage
let uncheckedImage = UIImage(named: "rectangle")! as UIImage
// Bool property
var isChecked: Bool = false {
didSet{
if isChecked == true {
self.setImage(checkedImage, for: .normal)
} else {
self.setImage(uncheckedImage, for: .normal)
}
}
}
func buttonClicked(sender: UIButton) {
if (sender == self) {
if self.isChecked == true
{
self.isChecked = false
}
else
{
self.isChecked = true
}
}
}
override func awakeFromNib() {
self.addTarget(self, action: Selector(("buttonClicked:")),for:UIControlEvents.touchUpInside)
self.isChecked = false
}
}
但是现在,当我单击复选框时,我总是在appdelegate中得到以下错误。
terminating with uncaught exception of type NSException
最佳答案
试试这个-
class CheckBoxButton: UIButton {
override func awakeFromNib() {
self.setImage(UIImage(named:"selected"), for: .selected)
self.setImage(UIImage(named:"rectangle"), for: .normal)
self.addTarget(self, action: #selector(CheckBoxButton.buttonClicked(_:)), for: .touchUpInside)
}
func buttonClicked(_ sender: UIButton) {
self.isSelected = !self.isSelected
}
}