Снизу вверх UITableView с прокруткой разной высоты элемента до конца

У меня есть UITableView с разной высотой. Вначале пользователь должен увидеть последние элементы (которые находятся в конце списка) и должен иметь возможность прокручивать вручную вверх.

Чтобы добраться до конца списка, я использую [tableView scrollToRowAtIndexPath:lastIndexPath atScrollPositionBottom animated:NO] в основном потоке после того, как я вызвал [tableView reloadData] в фоновом процессе. Чтобы ускорить работу и дойти до конца, я использую estimatedHeightForRowAtIndexPath (CGFloat)500 и я возвращаюсь к первым 8 элементам (CGFloat)500 и другим элементам (CGFloat)100 . Использование estimatedHeightForRowAtIndexPath heightForRowAtIndexPath позволяет избежать вызова heightForRowAtIndexPath для каждого элемента в списке (это может быть очень длинный список).

С iOS 8 (iPhone 4S, 5S, 6) все работает отлично, но с iOS 7 (iPhone 4S) heightForRowAtIndexPath только heightForRowAtIndexPath но не cellForRowAtIndexPath , поэтому нет элемента, отображаемого до начала прокрутки. Возврат (CGFloat)100 для каждого estimatedHeightForRowAtIndexPath методаHeightForRowAtIndexPath позволяет избежать этого, но он не прокручивается до реального конца списка и не сочетается с iOS 8 iPhone 4S, но он довольно медленный.

Какие-либо предложения?

3 Solutions collect form web for “Снизу вверх UITableView с прокруткой разной высоты элемента до конца”

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

 [tableView reloadRowsAtIndexPaths:[tableView indexPathsForVisibleRows] withRowAnimation:UITableViewRowAnimationNone]; 

Мы закончили с лучшей реализацией estimatedHeightForRowAtIndexPath . Там мы вычисляем с помощью простых вычислений более высокую оценку высоты для первых 50 элементов, поэтому мы получаем значения, близкие к реальной высоте. Для остальных элементов мы возвращаем среднее значение из первых вычислений.

Поскольку вы знаете, что хотите прокрутить до конца, вы можете использовать

 - (void)scrollToRowAtIndexPath:(NSIndexPath *)indexPath atScrollPosition:(UITableViewScrollPosition)scrollPosition animated:(BOOL)animated; 

Тогда вам не нужно вычислять высоты ячеек и добавлять высоты верхних и нижних колонтитулов разделов.

  • iphone: как сделать несколько столбцов в UITableView
  • Сгруппированный вид таблицы - расстояние между разделами
  • Вертикальный отскок после вращения UITableView (contentView?)
  • canMoveRowAtIndexPath не вызывается - но canEditRowAtIndexPath делает
  • Swift - проблема ограничений в расширяемом TableViewCell
  • GetHeightForHeader и GetViewForHeader не вызываются
  • Странная ошибка при добавлении элементов в ячейки прототипа в раскадровке-IB
  • как скрывать контент за пределами моего UITableViewCell
  • Перекрестные указатели UIScrollViews - Могу ли я изменить поведение прокрутки?
  • Возврат CGFloat.leastNormalMagnitude для заголовка раздела UITableView вызывает сбой
  • Странное поведение uitableview в iOS11. Ячейки прокручиваются с анимацией push-навигации
  • Interesting Posts

    UICollectionView cellForItemAt indexPath пропускает индексы строк в iOS 10

    Мобильное приложение против веб-приложения – Apple больше не принимает веб-приложения?

    В iOS, как программно добавить видео-просмотр, а затем удалить его после завершения игры с помощью Swift?

    iOS: NSInputStream / NSOutputStream – Ошибка CFNetwork SSLHandshake (-9806)

    Уведомление о доступности Интернета в iOS

    Как я могу проверить, что я запущен в заданной очереди GCD без использования dispatch_get_current_queue ()?

    Получение общего профиля facebook человека в приложении ios

    Как я могу привести к сбою в приложении Swift iOS с помощью SDK Fabric?

    Просмотр скрыт под UINavigationBar iOS 7

    Что требуется и как установить zucchini framework на Mac OSX?

    Как правильно преобразовать заголовок Last-Modified из ответа HTTP на NSDate на iOS

    Alamofire http json request block ui

    willMoveToWindow вызывается дважды

    Непостоянные переходы / переходы, но не переход

    Получение текущего времени, когда устройство закрывается

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.