TableViewCell Swift中的切换(复选框)按钮

Posted

技术标签:

【中文标题】TableViewCell Swift中的切换(复选框)按钮【英文标题】:Toggle (Checkbox) Button in TableViewCell Swift 【发布时间】:2016-10-20 18:09:31 【问题描述】:

我是 ios 开发新手,我一直在尝试通过点击单元格来切换 tableviewcell 中的按钮/复选框。我的代码非常幼稚,切换到“检查”图像可以正常工作,但问题是双击单元格时切换回未检查的图像。

我的代码有什么问题?还有没有更好的方法来做到这一点? (也许通过单元本身的委托函数?)

代码示例会很有帮助!谢谢。

var isChecked:Bool = true

在我的 Tableview 类中的 didSelectRowAtIndexPath 函数中调用了以下函数。

let btnCheckBox:UIButton = cell.contactCheckbox
setState(button: btnCheckBox)


func setState(button: UIButton)

    let check = UIImage(named: "check_green")
    let unCheck = UIImage(named: "un_check_green")

    if isChecked 
        button.setImage(check, for: .normal)
        isChecked = false
        print("First Tap - Bool is \(isChecked)")
     else 
        button.setImage(unCheck, for: .normal)
        isChecked = true
        print("Double Tap - Bool is \(isChecked)")

    

【问题讨论】:

在每个应该调用的方法中执行打印语句,以便您了解点击每个单元格时发生的情况。 【参考方案1】:

您应该使用 UIButton ,并为按钮的状态设置图像,示例 选中的 check_green check_red 表示没有 并且每个 UITableviewcell 都必须有一个 isSelected

【讨论】:

换成 UIButton 我遇到了同样的问题。 “检查”工作正常,但切换回“未检查”是问题。 我编辑了代码示例。在我的 tableview 类中确实没有其他内容可显示,该 func 是通过 didSelectRowAtIndexPath 调用的。 'cell' 是一个 customCell 类,其中包含 UIButton 类型的 checkBox 出口。

以上是关于TableViewCell Swift中的切换(复选框)按钮的主要内容,如果未能解决你的问题,请参考以下文章

如何在 UIStackView 中切换排列子视图的可见性,这在 tableViewCell swift3 中

如何仅在 swift 中重新加载 tableViewCell?

iOS7 上的 TableViewCell 中不会显示复选标记

滚动时 TableViewCell 中的 Swift 3 UISwitch 丢失状态

在swift 3中的tableview中更新tableviewcell中的特定行?

Swift - tableviewcell 中的动态按钮数