iOS TableView行删除

时间:2018-02-05 00:11:01

标签: ios swift uitableview

使用函数editActionsForRowAt删除表格的单元格时,需要用户采取删除操作(在单元格中轻扫和点击或完全滑动)有没有办法在没有用户的情况下调用它什么都不做?

2 个答案:

答案 0 :(得分:0)

作为一个安全和风格的问题,你永远不应该称一个方法是Cocoa所拥有的委托方法或其他事件。

但没有什么可以阻止你"分解"该功能,转换为editActionsForRowAt调用的方法,也可以调用。

答案 1 :(得分:0)

是的,您可以自己从代码中调用此方法,但正如其他答案所述,您不应该调用委托所有者调用的方法。

更好的方法是tableView(_:editActionsForRowAt)的{​​{3}}内容,并从您想要的任何地方调用的新提取方法。

func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? {
    let removeAction = UITableViewRowAction(style: .destructive, title: "Delete", handler: { [weak self] action, indexPath in
        // Call extracted method
        self?.extractedAction(at: indexPath)
    })
    return [removeAction]
}

func extractedAction(at indexPath: IndexPath) {
    // Your old delete from old tableView(_:editActionsForRowAt) logic goes here.
}

func anyOtherPlaceInYourCode() {
    let indexPath = IndexPath(...) // which row?
    extractedAction(at: indexPath) 
}