如何防止UITableView在打开编辑时保留单元格左侧的空间?

时间:2010-02-22 14:25:03

标签: iphone uitableview

我为UITableView设置了编辑模式,可以进行单元格重新排序。 UITableViewCellEditingStyleNone由每个单元格的editingStyleForRowAtIndexPath:方法返回,但它保留了单元格左侧的一些区域。是否可以防止这样的区域保留,因为我不需要在左边插入或删除图标?简而言之,我希望有一个占用所有可用区域的单元格,仍然可以重新排序。

5 个答案:

答案 0 :(得分:33)

// UITableViewDelegate

- (BOOL)tableView:(UITableView *)tableView shouldIndentWhileEditingRowAtIndexPath:(NSIndexPath *)indexPath {
    return NO;
}

答案 1 :(得分:7)

参见docs:你可以在单元格上设置一个布尔值,使其不缩进。只需添加

cell.shouldIndentWhileEditing = NO;

到你创建单元格的任何地方。

答案 2 :(得分:0)

将此设置为2或3

的tableView:indentationLevelForRowAtIndexPath:

答案 3 :(得分:0)

shouldIndentWhileEditing属性仅适用于分组表。我发现将缩进级别设置为-3可以完成普通表的工作。有没有更好的办法?这就是我现在使用的:

    if (self.tableView.style == UITableViewStylePlain) {
        cell.indentationLevel = -3;
    } else if (self.tableView.style == UITableViewStyleGrouped) {
        cell.shouldIndentWhileEditing = FALSE;
    }

答案 4 :(得分:0)

两者兼顾

- (BOOL)tableView:(UITableView *)tableView shouldIndentWhileEditingRowAtIndexPath:(NSIndexPath *)indexPath {
    return NO;
}

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
    return UITableViewCellEditingStyleNone;
}

UITableViewDelegate中。否则,单元格内容将缩进。