iOS UITableViewCellEditingStyle以编程方式设置检查(ON)

时间:2017-01-24 10:06:41

标签: ios swift tableview

当我点击我的屏幕上的编辑按钮时,我将我的TableView更改为编辑模式并通过执行此操作将编辑样式设置为复选框

func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCellEditingStyle {
        return UITableViewCellEditingStyle.init(rawValue: 3)!
    }

And it looks like this

现在我需要以编程方式预先检查一些条目。 我怎样才能检查一些细胞?

我知道

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell

我必须设置将其标记为已选中的编辑样式。

2 个答案:

答案 0 :(得分:2)

顺便说一句。我在此处(在SO上)看到了类似问题的解释,您不应使用此解释:

return UITableViewCellEditingStyle.init(rawValue: 3)!

因为它不是公共API,并且如果Apple更改了此值,则应用程序将停止正常运行。只需在编辑过程中启用“多项选择”即可达到相同的行为: enter image description here

您可以通过在覆盖的方法上设置断点来轻松检查它

func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCellEditingStyle {
        return UITableViewCellEditingStyle.init(rawValue: 3)!
    }

并在运行该应用程序时启用编辑功能,并且在编辑过程中选择了多个选项,并且没有选择。您将看到,如果启用了“编辑期间的多重选择”,则根本不会调用此方法。

答案 1 :(得分:1)

我终于明白了。 在表视图中设置复选框等同于选择单元格。 所以你需要做的就是将销售标记为选中,与编辑样式无关

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "MyCell", for: indexPath) as! MyCell
    let item = self.items[indexPath.row]
    cell.setup(item: item)
    cell.setSelected(true, animated: true) // Provided your cell is already in check box edit mode, then this makes it CHECK ON 
    return cell

}