在UITableView中禁用滑动到删除手势

Art*_*sev 20 cocoa-touch objective-c uitableview ios

是否可以为tableView中的行/单元禁用"滑动到删除"手势?如果是这样,你怎么做?在编辑模式下,单元格仍应可编辑,但应禁用滑动到删除手势.

aop*_*fan 43

这是做什么的:

- (UITableViewCellEditingStyle)tableView:(UITableView *)aTableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
    // Detemine if it's in editing mode
    if (self.tableView.editing) {
        return UITableViewCellEditingStyleDelete;
    }
    return UITableViewCellEditingStyleNone;
}
Run Code Online (Sandbox Code Playgroud)

您仍需要tableView:commitEditingStyle:forRowAtIndexPath:为删除设置动画.

这是比iBrad Apps解决方案更清晰的解决方案,因为您可以使用默认self.editButtonItem按钮而不是自定义按钮.

链接:UITableView禁用滑动删除,但在编辑模式下仍然有删除?


Sim*_*iwi 14

是.下面的代码将禁用它.

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
    return NO;
}
Run Code Online (Sandbox Code Playgroud)

回复你的评论:

Edit2:我的代码可以通过自定义按钮更好地工作.如果您想要默认按钮,请转到@dasblinkenlight发布的链接.

因此,几乎可以创建一个按钮,您可以在其中显示编辑按钮,然后调用此方法.

- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
    [super setEditing:editing animated:animated];
    [self.tableview setEditing:editing animated:animated];
}
Run Code Online (Sandbox Code Playgroud)