Swift - 单击某个动作时关闭行

时间:2015-03-04 15:05:49

标签: swift

当表处于编辑模式时,我正在创建不同的操作。 当用户在单元格上向左滑动以打开选项时,如果单元格的状态处于活动状态,它将显示“禁用”按钮,而是显示“启用”按钮。

一切都很好。

问题是我想在用户点击启用或禁用按钮时关闭单元格。

现在关闭单元格的唯一方法是单击单元格本身,而不是当用户单击“启用”或“禁用”按钮时我也想触发此操作,因为我没有完全删除该行而只是在内部更改选项

我试图以这种方式实现这一目标:

tableView.reloadRowsAtIndexPaths([indexPath.row], withRowAnimation: UITableViewRowAnimation.None)

但由于某些原因,这段代码正在崩溃我的应用程序。

任何帮助?

由于

override func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [AnyObject]? {

    let builderModuleStatus = builderModules[indexPath.row].status

    let disableAction = UITableViewRowAction(style: UITableViewRowActionStyle.Default, title: "Disable", handler:{(action, indexpath) -> Void in

        self.builderModules[indexPath.row].status = "disabled"
        tableView.reloadRowsAtIndexPaths([indexPath.row], withRowAnimation: UITableViewRowAnimation.None)
    });

    let enableAction = UITableViewRowAction(style: UITableViewRowActionStyle.Default, title: "Enable", handler:{ (action, indexpath) -> Void in

        self.builderModules[indexPath.row].status = "active"
    });
    enableAction.backgroundColor = UIColor(red: 0.298, green: 0.851, blue: 0.3922, alpha: 1.0);


    if(builderModuleStatus == "active"){
        return [disableAction]
    }else{
        return [enableAction]
    }
}

1 个答案:

答案 0 :(得分:5)

要做到这一点,只需在动作处理程序上添加以下行:

tabelView.setEditing(false, animated: true)