Обратный вызов UITableView beginUpdates / endUpdates - PullRequest
8 голосов
/ 10 января 2012

Я делаю изменения в tableView, используя блок beginUpdates / endUpdates.На протяжении всего пути мне нужно обновить тень, чтобы она отражала текущую композицию tableView.

Я пытался настроить KVO для contentSize tableView, но он вызывается только на endUpdates после завершения анимации,Я хочу, чтобы он вызывался каждый раз, когда меняется contentSize (даже если он всего на пиксель).Есть ли способ добиться этого?

Ответы [ 3 ]

24 голосов
/ 31 января 2013

Как насчет этого?

[CATransaction begin];

[CATransaction setCompletionBlock:^{
    // animation has finished
}];

[tableView beginUpdates];
// do some work
[tableView endUpdates];

[CATransaction commit];
1 голос
/ 29 мая 2016

Метод Рудольфа не работал для меня так гладко, как ожидалось.В моем случае я выбирал строку на UITableView, используя это, и метод Рудольфа заставлял таблицу делать две анимации с небольшим замораживанием: анимация внутри beginUpdates / endUpdates, небольшая остановка и анимация в блоке завершения.

 [tableView selectRowAtIndexPath:indexPath
                        animated:YES
                  scrollPosition:scrollPosition];

, который вдохновил меня на создание этого кода ... и это работает без проблем:

[UIView animateWithDuration:0.0 animations:^{
    [tableView beginUpdates];
    // do something to the table
    [tableView endUpdates];
} completion:^(BOOL finished) {
    // Code to run when table updates are complete.
}];
0 голосов
/ 10 января 2012

Извините, я не думаю, что вы можете сделать это. При внесении изменений в таблицу после вызова beginUpdates изменения анимируются как одна анимация после endUpdates. Во время этих анимаций нет обратных вызовов анимации. Я не пробовал это, поэтому не знаю, будет ли это хорошо работать для этого, но вы можете попробовать вложить beginUpdates и endUpdates и обновлять свою тень после каждого endUpdates.

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