UITableView reloadRowsAtIndexPaths выполняет анимацию, когда она не должна

Я использую UITableView в своем приложении для iOS и недавно столкнулся с странной проблемой.

Предположим, моя таблица структурирована следующим образом:

section 1 header
row 
section 2 header
section 3 header
row
row 
...

(Обратите внимание, что в разделе 2 есть нет строк)

Я выполняю обновления строк в моей таблице через

    [self.tv beginUpdates];
    [self.tv reloadRowsAtIndexPaths:ip withRowAnimation:UITableViewRowAnimationNone];
    [self.tv endUpdates];

Я не хочу, чтобы выполнялась какая-либо анимация. Я просто хочу обновить строку. Проблема в том, что эта стратегия работает для каждой строки и раздела в моей таблице , кроме раздела 3, строка 1: первая строка последнего раздела. Когда я обновляю эту строку (которая действительно использует правильные indexPaths), вместо того, чтобы не получать анимацию, строка делает этот небольшой скачок, как будто она скользит по новой строке, чтобы заменить старую или что-то в этом роде. Строка немного скользит вверх, а затем обратно вниз, как если бы я вставлял строку. Я' Я предполагаю, что это как-то связано с вычислениями заголовка, но я возвращаю правильные значения для heightForHeaderInSection.

Кто-нибудь видел такое поведение?

8
задан BoltClock 29 December 2010 в 21:19
поделиться