Я создаю приложение для чата, оно работало хорошо, пока я не начал использовать автоматическую прокрутку для UITableView
, когда клавиатура показывает вверх / вниз.
Полученный indexPathsForVisibleRows
размер NSArray
увеличивался после прокрутки, даже если высота каждой строки / ячейки постоянна. Я искал здесь и обнаружил, что была ошибка. В соответствии с предложениями я добавил следующую строку:
[table visibleCells];
перед использованием indexPathsForVisibleRows
:
scrollPosition = (NSIndexPath*)[[table indexPathsForVisibleRows] objectAtIndex:0];
в:
- (void) scrollViewDidEndDecelerating:(UIScrollView *)scrollView;
Это исправило проблему, когда клавиатура была скрыта, а таблица была полноразмерной (без изменения размера).
Когда пользователь нажимает на текстовое поле, появляется клавиатура, и высота UITableView
уменьшается на величину высоты клавиатуры.
В этот момент, когда происходит прокрутка, можно использовать
[table visibleCells];
не работает, и результирующий размер indexPathsForVisibleRows
NSArray
становится общими строками таблицы, а не только видимыми.
Это еще одна ошибка или я делаю что-то не так?