Ошибка в UITableView (deleteSections: withRowAnimation:)? - PullRequest
9 голосов
/ 22 июня 2011

У меня проблемы с использованием этого метода UITableView :

- (void)deleteSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation)animation

Сначала в документации написано:

анимация: ДА, чтобы оживить удаление разделов, в противном случае НЕТ.

Но параметр анимации в действительности имеет тип enum UITableViewRowAnimation, а не BOOL!?

Так как я могу отключить анимацию? Я пробовал NO и UITableViewRowAnimationNone. Ничего не работает Удаление раздела всегда анимированное.

Я знаю, что могу использовать [tableView reloadData] вместо этого. Это решило бы мою проблему. Мне просто любопытно, если это известная проблема и возможно ли отключить анимацию с помощью этого метода tableview.

Спасибо!

Ответы [ 4 ]

43 голосов
/ 03 июня 2012

Это своего рода хак, но это избавляет от анимации вставки:

[UIView setAnimationsEnabled:NO];
[self.tableView insertRowsAtIndexPaths:insertedIndexPaths withRowAnimation:UITableViewRowAnimationNone];
[UIView setAnimationsEnabled:YES];
4 голосов
/ 22 июня 2011

О ДА / НЕТ в документе, тогда как параметр имеет тип UITableViewRowAnimation, я думаю, что это остаток от старой версии API, где параметр был BOOL раньше. В любом случае, документация действительно неверна.

Не стесняйтесь, чтобы отправить отзыв об этом в Apple (используя ссылку «Это хорошо, но…» внизу документа)

2 голосов
/ 22 июня 2011

Ну, очевидно, документация действительно глючит.Параметр, который вы передаете, говорит, как вы анимируете удаление.Если вы передадите UITableViewRowAnimationNone, обновление произойдет мгновенно без анимации.Однако, если у вас есть раздел ниже того, который вы удалите, он будет анимированно перемещаться вверх.

Вам следует попытаться использовать анимацию.Таким образом, пользователь может видеть, что происходит.

1 голос
/ 17 марта 2012

Полагаю, вам нужно встроить вызов deleteSections в блок beginUpdates:

[tableView beginUpdates];
[tableView deleteSections:... withRowAnimation:... ];
[tableView endUpdates];

Документация , похоже, все равно говорит об этомЯ не проверял это с UITableRowViewAnimationNone, хотя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...