【问题标题】:Implement checkbox in Swift在 Swift 中实现复选框
【发布时间】:2026-01-03 13:35:02
【问题描述】:

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

【问题讨论】:

    标签: swift uibutton swift3


    【解决方案1】:

    试试这个 -

    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
     }
    
    }
    

    【讨论】:

    • 为我工作,谢谢
    【解决方案2】:

    我最近还必须制作一个复选框,为此我使用了 cocoapod,而不是自己制作。它可以让你选择一切,包括颜色、动画、形状和大小!也许这有帮助:

    BEM CHECKBOX

    实际上只需要 5 分钟即可安装并在您的应用上运行。

    【讨论】:

      【解决方案3】:

      最安全的复选框制作方法:

      UIButton 添加到ViewController

      在项目中添加两张图片:1.checked.png, 2.un-checked.png

      checkedun-checked图片设置为按钮背景或按钮图片

      将按钮文本设置为""

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

      【讨论】:

      • 但是我怎样才能选中或取消选中复选框呢?
      • @fabioha 在他的示例中,您只需单击按钮,因为您已经为选中/取消选中时创建了图像。
      • 所以你只要点击按钮就改变图片?听起来很简单。
      • @fabioha,是的,做一个切换按钮图像的切换功能。
      最近更新 更多