当前位置 : 主页 > 手机开发 > ios >

ios – 从滑动中删除一个单元格行以删除

来源:互联网 收集:自由互联 发布时间:2021-06-11
我目前已经设置了一个UITableView,其中填充了几个单元格.我想禁用只有一个单元格的滑动删除功能,但保留所有其他单元格. 到目前为止,我已经尝试了以下但没有运气: override func tableVi
我目前已经设置了一个UITableView,其中填充了几个单元格.我想禁用只有一个单元格的滑动删除功能,但保留所有其他单元格.

到目前为止,我已经尝试了以下但没有运气:

override func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
    let defaults = NSUserDefaults.standardUserDefaults()
    let presets = defaults.objectForKey("presets")!

    if indexPath.row == (presets.count) {
        // I want this cell non-removable
        UITableViewCellEditingStyle.None
    }

    else {
        let presets = defaults.objectForKey("presets")?.mutableCopy() as! NSMutableArray
        presets.removeObjectAtIndex(indexPath.row)
        defaults.setValue(presets, forKey: "presets")
        defaults.synchronize()
        tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)
    }

}

在这里做什么真的很无能为力.任何帮助将非常感激!

你需要实现tableView:canEditRowAtIndexPath:方法,如下所示:

override func tableView(tableView: UITableView, canEditRowAtIndexPath indexPath: NSIndexPath) -> Bool {
    return indexPath.row != (presets.count)
}

对于除presets.count之外的所有行,indexPath.row!=(presets.count)表达式返回true,禁用其上的所有编辑功能.

网友评论