Существует свойство на UITableViewCell, названном editAction
, который документируется как разрешение Вам изменить действие, используемое для вставки или удаления на отдельных ячейках (это использует ячейку target
свойство также). Я не протестировал его, но это кажется, что могло бы сделать то, что Вы хотите.
Я реализовал бы подкласс UITableViewCell и сенсорных событий дескриптора там. Необходимо было бы, вероятно, сделать весь материал анимации сами, но я думаю, что это - вероятно, самое легкое решение. Нет "Поддерживаемого" метода для изменения удалить кнопки, я не думаю
Редактирование реализовано как метод для объекта делегата вашего UITableView. В контроллере таблицы укажите, какой элемент управления активирует редактирование, вызовите это:
[tableView setEditing: YES animated: YES];
Затем убедитесь, что ваш объект делегата реализует это:
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
if (editingStyle == UITableViewCellEditingStyleDelete) {
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle: @"Delete"
message: @"Do you really want to delete “George W. Bush”?"
delegate: self
cancelButtonTitle: @"Cancel"
otherButtonTitles: @"Of course!", nil];
}
}
… или более стандартное действие может быть таким:
[itemList removeObjectAtIndex:indexPath.row];
[table deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:YES];
@JFMartin и Марко - для замены стандартной кнопки "Удалить" используйте следующий метод делегатов UITableview
- (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath