Книга: iOS. Приемы программирования
Решение
Решение
Реализуйте в делегате табличного вида селектор tableView: editingStyleForRowAtIndexPath:
, а в источнике данных табличного вида — селектор tableView: commitEditingStyle: forRowAtIndexPath::
— (UITableViewCellEditingStyle)tableView:(UITableView *)tableView
editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{
return UITableViewCellEditingStyleDelete;
}
— (void) setEditing:(BOOL)editing
animated:(BOOL)animated{
[super setEditing: editing
animated: animated];
[self.myTableView setEditing: editing
animated: animated];
}
— (void) tableView:(UITableView *)tableView
commitEditingStyle:(UITableViewCellEditingStyle)editingStyle
forRowAtIndexPath:(NSIndexPath *)indexPath{
if (editingStyle == UITableViewCellEditingStyleDelete){
/* Сначала удаляем этот объект из источника данных */
[self.allRows removeObjectAtIndex: indexPath.row];
/* Потом удаляем ассоциированную с ним ячейку из табличного вида */
[tableView deleteRowsAtIndexPaths:@[indexPath]
withRowAnimation: UITableViewRowAnimationLeft];
}
}
Метод tableView: editingStyleForRowAtIndexPath
: позволяет выполнять операции удаления. Он вызывается табличным видом, а его возвращаемое значение определяет, какие операции пользователь может делать в табличном виде (вставлять информацию, удалять информацию и т. д.). Метод tableView: commitEditingStyle: forRowAtIndexPath:
выполняет затребованную пользователем операцию удаления. Второй из указанных методов определяется в делегате, но его функционал несколько перегружен: этот метод применяется не только для удаления данных, но и для удаления строк из таблицы.
- 4.14. Запрет и разрешение хостов
- Решение проблем при работе в Почте Windows
- Решение проблем при работе Проигрывателя Windows Media
- Общее решение
- Разрешение трассировки с помощью ‹trace›
- Более приемлемое решение
- Разрешение конфликтов имен
- Запрещение и разрешение прерываний
- Правила творческой лени
- Основные параметры ЭЛТ-мониторов
- Выстройте структуру
- См. также