Как я могу узнать, когда [UITableView setEditing: YES animated: YES] завершился?
Я не хочу давать никакого контекста, потому что я хочу, чтобы кто-нибудь не предлагал мне обходные пути, которые не интересует меня.
Я хочу вызвать вышеупомянутое, а затем вызвать отдельную функцию, когда анимация будет завершена.
Я отредактировал сообщение, чтобы дать контекст и некоторые обходные пути. Первоначально я установил Редактирование и немедленно перезагрузил данные таблицы.
[tableView setEditing:YES animated:YES];
[tableView reloadData];
Проблема в том, что таблица перезагружается до начала анимации, и поэтому анимация никогда не отображается.
Вот несколько различных обходных путей:
[tableView setEditing:YES animated:YES];
[self performSelector:@selector(ReloadTable) withObject:nil afterDelay:1.0];
Это работает, но если я получить неправильную задержку, тогда это будет плохо выглядеть. Поэтому мне нужно знать, что такое задержка, что я могу понять, но мы не уверены, что задержка всегда будет одинаковой.
isEditing = YES;
[tableView reloadData];
[tableView setEditing:YES animated:YES];
Это может сработать, но таблица ведет себя по-разному в зависимости от того, находимся ли мы в режиме редактирования . Поэтому я должен использовать свою собственную переменную isEditing вместо стандартной UITableView.editing. Я бы предпочел не создавать новую логическую переменную isEditing.
[tableView setEditing:YES animated:YES];
[tableView insertRowsAtIndexPaths:path withRowAnimation:UITableViewRowAnimationTop];
Это почти работает, но в режиме редактирования первая строка должна иметь UITableViewCellEditingStyleInsert, а другие строки - UITableViewCellEditingStyleDelete. И с помощью приведенного выше кода стиль редактирования устанавливается ДО добавления строки. Следовательно, вторая строка заканчивается UITableViewCellEditingStyleInsert.