У меня есть tableView, в который я вставляю строки сверху.
Пока я делаю это, я хочу, чтобы текущее представление оставалось полностью неподвижным, поэтому строки появляются только при прокрутке вверх.
Я попытался сохранить текущую позицию базового UIScrollview и сбросить позицию после вставки строк, но это приводит к дрожанию, вверх и вниз, хотя в конечном итоге он возвращается в прежнее место..
Есть ли хороший способ добиться этого?
Обновление: я использую beginUpdate, затем insertRowsAtIndexPath, endUpdates.Вызова reloadData нет.
scrollToRowAtIndexPath переходит на верх текущей ячейки (сохраняется до добавления строк).
Другой подход, который я пробовал, заканчивается в точно правильный темп, но с дрожанием.
save tableView currentOffset. (Underlying scrollView method)
Add rows (beginUpdates,insert...,endUpdates)
reloadData ( to force a recalulation of the scrollview size )
Recalculate the correct new offset from the bottom of the scrollview
setContentOffset (Underlying scrollview method)
Проблема в том, что reloadData заставляет scrollview / tableview начать короткую прокрутку, затем setContentOffset возвращает его в правильное место.
Есть ли способ заставить tableView работать с новым размером, не запуская отображение?
Завершение всего процесса в beginAnimation commitAnimation также мало чем помогает.
Обновление 2: это можетОбязательно сделайте это - посмотрите официальное приложение для твиттера, когда вы загружаете обновления.