Я установил режим редактирования для UITableView, чтобы иметь возможность переупорядочения ячеек. UITableViewCellEditingStyleNone возвращается путем редактированияStyleForRowAtIndexPath: метод для каждой ячейки, но он оставляет некоторую область слева от ячейки. Можно ли запретить такую зону резервировать, потому что мне не нужен значок вставки или удаления слева? Короче говоря, я хочу иметь ячейку, которая занимает всю доступную область и все еще может быть переупорядочена.
Как предотвратить UITableView от резервирования пространства слева от ячейки при включении редактирования?
Ответ 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
. В противном случае содержимое ячейки имеет отступ.