我正在尝试在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
答案 0 :(得分:2)
试试这个 -
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
}
}
答案 1 :(得分:0)
制作复选框的最安全方法:
将UIButton
添加到ViewController
将两张图片添加到Project:1.checked.png,2.un-checked.png
将checked
或un-checked
图片设为按钮背景或按钮图片
将按钮文字设置为""
答案 2 :(得分:0)
我最近还要制作一个复选框,我使用了一个cocoapod,而不是制作我自己的。它可以让你选择一切,包括颜色,动画,形状和大小!也许这会有所帮助:
安装它只需要5分钟,并且可以在您的应用上运行。