在Swift中实现复选框

在Swift中实现复选框,swift,uibutton,swift3,Swift,Uibutton,Swift3,我正在尝试在Swift中实现一个复选框。我用另一个人的答案开始。 首先,我在故事板中创建了一个按钮,并给它设置了类复选框。之后,我创建了类复选框。现在看起来是这样的。我在另一个帖子中做了一些调整,因为他使用的是不同版本的swift class checkbox: UIButton { //Images let checkedImage = UIImage(named: "selected")! as UIImage let uncheckedImage = UIIm

我正在尝试在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

创建复选框的最安全方法:

ui按钮添加到
ViewController

向项目添加两个图像:1.checked.png、2.un-checked.png

选中的
未选中的
图像设置为按钮背景或按钮图像

将按钮文本设置为“


相信我,这些库会让您感到困惑。

创建复选框的最安全方法:

ui按钮添加到
ViewController

向项目添加两个图像:1.checked.png、2.un-checked.png

选中的
未选中的
图像设置为按钮背景或按钮图像

将按钮文本设置为“

相信我,图书馆会让你感到困惑。

试试这个-

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
 }

}
试试这个-

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
 }

}

我最近还不得不做一个复选框,我用了一个cocoapod来做,而不是自己做。它可以让你选择一切,包括颜色,动画,形状和大小!也许这有助于:


安装并在你的应用程序上运行只需5分钟。

我最近还需要做一个复选框,我用了cocoapod,而不是自己做的。它可以让你选择一切,包括颜色,动画,形状和大小!也许这有助于:


安装并在应用程序上运行只需5分钟。

但我如何选择或取消选择复选框呢?@fabioha在他的例子中,您只需单击按钮,因为您已经为选中/取消选中该按钮时创建了图像。因此,只要单击按钮,您就可以更改图片?听起来很简单。@fabioha,是的,制作一个切换函数来更改按钮图像。但是我如何才能选择或取消选择复选框呢?@fabioha在他的例子中,您只需单击按钮,因为您已经为选中/取消选中按钮时创建了图像。因此,只要单击按钮,您就可以更改图片?听起来很简单。@fabioha,是的,制作一个切换功能来更改按钮图像。为我工作,谢谢为我工作,谢谢