2013-09-26 3 views
3

Я использую функцию «перетащить-удалить» в своем UITableView. В прошлом он работал без проблем.UITableViewCell не исправляет стиль редактирования правильно [iOS7]

Поскольку я обновил свой проект до iOS7, ячейка не выходит из состояния «swiped». Поэтому, когда я нажимаю кнопку «Удалить», вызывается -tableView:commitEditingStyle:forRowAtIndexPath:, но он еще не скрывает кнопку.

Нужно ли это делать вручную с iOS7? Если да, какой метод я должен использовать?

ответ

1

У меня такая же проблема. Проблема заключается в том, что метод делегата tableView:didEndEditingRowAtIndexPath: не называется (не знаю почему).

способ, которым я нашел, - это позвонить [tableview reloadData] внутри tableView:commitEditingStyle:forRowAtIndexPath:, а не в tableView:didEndEditingRowAtIndexPath:. Это работает в iOS 6 и 7.

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { 
    if (editingStyle == UITableViewCellEditingStyleDelete) { 
     [myDataSource removeObjectAtIndex:indexPath.row]; 
     [myTable reloadData]; 
    }  
} 
+3

Перезагрузка всего столаView будет излишним. Используйте '-reloadRowsAtIndexPaths: withRowAnimation:'. Это дает вам преимущество в создании плавной анимации. Он все еще сосет :( –

+0

У меня такая же проблема. Этот ответ работает, но мне нужно оживить строку. –

+0

@Wyllian Hossein Спасибо, что работает – MegaBytes

Смежные вопросы