Подтвердить что ты не робот

Как предотвратить UITableView от резервирования пространства слева от ячейки при включении редактирования?

Я установил режим редактирования для UITableView, чтобы иметь возможность переупорядочения ячеек. UITableViewCellEditingStyleNone возвращается путем редактированияStyleForRowAtIndexPath: метод для каждой ячейки, но он оставляет некоторую область слева от ячейки. Можно ли запретить такую ​​зону резервировать, потому что мне не нужен значок вставки или удаления слева? Короче говоря, я хочу иметь ячейку, которая занимает всю доступную область и все еще может быть переупорядочена.

4b9b3361

Ответ 1

См. docs: вы можете установить логическое значение в ячейке, чтобы сделать его не отступ. Просто добавьте

cell.shouldIndentWhileEditing = NO;

где бы вы ни создали свою ячейку.

Ответ 2

//UITableViewDelegate

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

Ответ 3

Установите это как 2 или 3

Tableview: indentationLevelForRowAtIndexPath:

Ответ 4

Свойство shouldIndentWhileEditing работает только с сгруппированными таблицами. Я обнаружил, что установка уровня отступов -3 выполняет задание для простых таблиц. Есть ли способ лучше? Вот что я сейчас использую:

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

Ответ 5

Сделайте оба

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

и

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

в UITableViewDelegate. В противном случае содержимое ячейки имеет отступ.