更改单元格删除按钮

时间:2017-10-22 10:41:24

标签: ios swift uitableview

我试图更改单元格的删除按钮。 我有两个功能:

override func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? {
    let titleBtn = UITableViewRowAction(style: UITableViewRowActionStyle.default, title: "Supprimer") { (action , indexPath ) -> Void in
        self.isEditing = false
    //ackAction.backgroundColor = UIColor.orange
    }
    return [titleBtn]
}


override func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
    return true
}

但是,当我运行我的应用程序时,按钮的文本已更改,但删除不起作用(我无法删除数组中的数据和我的tableview行)。在添加此功能之前,所有功能都完美无缺 细节:在canEditRowAt函数中,我试图返回false ... 谢谢提前

2 个答案:

答案 0 :(得分:2)

如果要更改删除按钮的文本,请在UITableViewDelegate中符合此方法:

func tableView(_ tableView: UITableView, titleForDeleteConfirmationButtonForRowAt indexPath: IndexPath) -> String?
{
     return "Your new title"
}

要从数组中删除该项,请遵循此方法

func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) 
{
    if (editingStyle == UITableViewCellEditingStyle.delete) 
    {
        yourDataSourceArray.remove(at: indexPath.row)
        yourTableView.reloadData()
    }
}

答案 1 :(得分:1)

您可以使用默认删除操作并更改其标题。

func tableView(_ tableView: UITableView, titleForDeleteConfirmationButtonForRowAt indexPath: IndexPath) -> String?
    {
        return "MyAction"
    }

或者你可以像这样创建自己的动作按钮。

func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
        return true
    }

    func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? {
        let deleteAction = UITableViewRowAction(style: .default, title: "Delete") {action in
            //handle delete
        }

        let editAction = UITableViewRowAction(style: .normal, title: "Edit") {action in
            //handle edit
        }

        return [deleteAction, editAction]
    }