【问题标题】:Toggle (Checkbox) Button in TableViewCell SwiftTableViewCell 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)")

    }
}

【问题讨论】:

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

标签: ios iphone uitableview swift3 xcode8


【解决方案1】:

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

【讨论】:

  • 换成 UIButton 我遇到了同样的问题。 “检查”工作正常,但切换回“未检查”是问题。
  • 我编辑了代码示例。在我的 tableview 类中确实没有其他内容可显示,该 func 是通过 didSelectRowAtIndexPath 调用的。 'cell' 是一个 customCell 类,其中包含 UIButton 类型的 checkBox 出口。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-16
  • 2017-02-06
  • 2023-03-05
  • 1970-01-01
  • 1970-01-01
  • 2019-02-17
相关资源
最近更新 更多