Я разрабатываю приложение, использующее SQLite. Я хочу показать список пользователей (UITableView) с помощью механизма разбивки на страницы. Может ли кто-нибудь сказать мне, как загрузить больше данных в мой список, когда пользователь прокручивает до конца списка (например, на домашней странице в приложении Facebook)?
ios
iphone
uitableview
pagination
Рокриди
источник
источник
launchReload
, ответственность за его обработку будетif !lastItemReached && indexPath.row == dataArray!.hits.count - 1 {
self.launchReload
метод?Swift
Метод 1: прокрутите вниз
Вот версия Swift ответа Педро Романа . Когда пользователь прекращает прокрутку, он проверяет, достиг ли он дна.
Метод 2: дошел до последней строки
А вот и ответ shinyuX на Swift . Он проверяет, дошел ли пользователь до последней строки.
Пример
loadMore()
методаЯ установил эти три переменные класса для выборки пакетов данных.
Это функция для загрузки большего количества элементов из базы данных в табличное представление.
источник
Лучше использовать
willDisplayCell
метод, чтобы проверить, будет ли загружена какая ячейка. Как только мы получимindexPath.row
последний ток, мы сможем загрузить больше ячеек. Это загрузит больше ячеек при прокрутке вниз.источник
подробности
Решение
использование
в этом
обработка
Полный образец
Результат
источник
Если вы используете Core Data и
NSFetchedResultsController
, этоloadMore
может выглядеть следующим образом:источник
Я реализовал одно решение, которое нашел в stackoverflow, и оно отлично работает, но я думаю, что решение shinyuX очень легко реализовать и отлично подходит для моего предложения. Если кто-то хочет другое решение, можете использовать это ниже.
источник
подробности
Решение
добавьте это расширение UITableView + в свой новый файл
Теперь просто добавьте следующую строку кода в UITableViewDelegate Method willDisplay Cell в вашем ViewController и убедитесь, что tableView.delegate = self
Результат
Вот и все .. Надеюсь, это поможет. Спасибо
источник
Используйте limit и offset в своих запросах и заполните таблицу этим контентом. Когда пользователь прокручивает вниз, загрузите следующее смещение.
Реализуйте
tableView:willDisplayCell:forRowAtIndexPath:
метод в своемUITableViewDelegate
и проверьте, последняя ли строкаисточник
Ссылка ниже предоставит образец кода. # Swift3
Пользователь должен открыть последнюю ячейку табличного представления, по крайней мере, высотой 2 ячейки, чтобы получить больше данных с сервера.
Вы также найдете ячейку «Процесс», чтобы показать процесс загрузки, как в последней ячейке.
Это в Swift3
https://github.com/yogendrabagoriya/YBTableViewPullData
источник
Еще один вариант использования ( Swift 3 и iOS 10+):
Для довольно небольших страниц (~ 10 элементов) вы можете захотеть вручную добавить данные для страниц 1 и 2, потому что nextPage может быть где-то около 1-2, пока в таблице не появится несколько элементов, которые нужно хорошо прокрутить. Но он отлично подойдет для всех следующих страниц.
источник
очень хорошее объяснение этого поста.
http://useyourloaf.com/blog/2010/10/02/dynamically-loading-new-rows-into-a-table.html
просто вам нужно добавить последнюю строку и скрыть ее, и когда строка таблицы попадет в последнюю строку, чем отобразить строку и загрузить больше элементов.
источник
вам следует проверить ios UITableViewDataSourcePrefetching.
источник
для загрузки из API, у меня работает, Xcode 10 , swift 4.2 :
1- создайте новый файл Swift и сделайте так:
2- в вашем файле ViewController (tableView Controller):
при использовании Tableview в вашем ViewController набора делегата , источника данных я в viewDidLoad.
источник
Просто хочу поделиться этим подходом:
NSLog(...);
вывод будет примерно таким:Это хорошо для отображения данных, хранящихся локально. Первоначально я объявляю dataLimit равным 25, это означает, что uitableview будет иметь значение 0-24 (изначально).
Если пользователь прокручивает вниз и отображается последняя ячейка,
dataLimit
будет добавлено 25 ...Примечание: это больше похоже на подкачку данных UITableView :)
источник
источник
Лучший способ решить эту проблему - добавить ячейку внизу таблицы, и эта ячейка будет содержать индикатор.
В быстром темпе вам нужно добавить это:
посмотрите на код ниже:
Для табличного представления: numOfRows:
cellForRawAt indexPath:
Если вы заметили, что моя ячейка загрузки создана из файла пера. Это видео объяснит, что я сделал.
источник
источник
Для Xcode 10.1, Swift 4.2
Это видео похоже на отличное руководство!
Начальный / полный проект: https://github.com/RobCanton/Swift-Infinite-Scrolling-Example
источник