indexPathsForVisibleRows возвращает общий размер таблицы вместо видимого после изменения размера - PullRequest
4 голосов
/ 17 августа 2011

Я создаю приложение для чата, оно работало хорошо, пока я не начал использовать автоматическую прокрутку для UITableView, когда клавиатура показывает вверх / вниз.

Полученный indexPathsForVisibleRows размер NSArray увеличивался после прокрутки, даже если высота каждой строки / ячейки постоянна. Я искал здесь и обнаружил, что была ошибка. В соответствии с предложениями я добавил следующую строку:

[table visibleCells];

перед использованием indexPathsForVisibleRows:

scrollPosition = (NSIndexPath*)[[table indexPathsForVisibleRows] objectAtIndex:0];

в:

- (void) scrollViewDidEndDecelerating:(UIScrollView *)scrollView;

Это исправило проблему, когда клавиатура была скрыта, а таблица была полноразмерной (без изменения размера).

Когда пользователь нажимает на текстовое поле, появляется клавиатура, и высота UITableView уменьшается на величину высоты клавиатуры.

В этот момент, когда происходит прокрутка, можно использовать

[table visibleCells];

не работает, и результирующий размер indexPathsForVisibleRows NSArray становится общими строками таблицы, а не только видимыми.

Это еще одна ошибка или я делаю что-то не так?

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