【发布时间】:2015-02-16 15:39:05
【问题描述】:
我正在尝试创建一个自定义的 UIButton。此自定义按钮显示一个未选中的框,当用户按下该按钮时,该框将变为选中的框。当用户按下复选框时,它将返回到未选中状态。
我有一个运行时错误。调试器显示它由于 NSException 类型的未捕获异常而终止。
哪里出错了?
复选框代码
import UIKit
class CheckBox: UIButton {
//Images
let checkedImage = UIImage(named: "checked")
let unCheckedImage = UIImage(named: "unchecked")
//bool property
var isChecked:Bool = false {
didSet {
if isChecked == true{
self.setImage (checkedImage, forState: .Normal)
}
else {
self.setImage(unCheckedImage, forState: .Normal)
}
}
}
override func awakeFromNib() {
self.addTarget(self, action: "buttonClicked", forControlEvents: UIControlEvents.TouchUpInside)
self.isChecked = false
}
func buttonClicked(sender:UIButton) {
if(sender == self) {
if isChecked == true {
isChecked = false
} else {
isChecked = true
}
}
}
}
【问题讨论】:
-
你为什么要这么做?您可以使用按钮的选定属性(也是布尔值)并为选定状态设置图像,然后单击更改选定状态
-
我该怎么做?你有什么参考资料给我吗?
-
查看下面的答案
-
你的编译器怎么不会对
var ischecked:Bool = false{大喊大叫?你是在尝试if let吗?