在Swift中实现复选框
问题描述:
我想在Swift中实现复选框。我使用其他post的答案开始。 首先,我在故事板中创建了一个按钮,并为其提供了类复选框。之后,我创建了类复选框。目前看起来像这样。我曾经从另一篇文章做过一些调整,因为他使用了不同版本的swift。在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
答
,使复选框
最保险的办法:
添加UIButton
到ViewController
添加两个图像到项目:1.checked.png,2.un-checked.png
设置为checked
或un-checked
图像作为按钮背景或按钮图像
将按钮文本设置为""
相信我,那图书馆会让你感到困惑。
答
试试这个 -
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
}
}
+0
为我工作,谢谢 – fabioha
答
我最近也不得不做出一个复选框,我用一个cocoapod对于这一点,而不是让我自己。它可以让你选择一切,包括颜色,动画,形状和大小!也许这可以帮助:
这真的只需要5分钟安装,有工作在你的应用程序。
但是,如何选择或取消选择复选框呢? – fabioha
@fabioha在他的例子中,你只需点击按钮,因为你已经创建了图像,因为它被选中/取消选中。 –
所以,只要按钮被点击,你就会改变图片?听起来很简单。 – fabioha