С введением iOS 10 кажется, что у нас будет prefetching enabled by default on UITableView and UICollectionViews. Это означает, что ячейки, которые не отображаются на экране, будут извлекаться до того, как пользователь их действительно увидит.Получение загруженных vs видимых ячеек в UITableView или UICollectionView
Вот некоторые важные методы:
- cellForRowAtIndexPath:: возвращает "
nil
, если клетка не видно." - visibleCells: каждый элемент представляет собой «видимую ячейку в виде таблицы».
- indexPathsForVisibleRows: каждый элемент представляет «видимую строку в виде таблицы».
- visibleCells: "возвращает полный список видимых ячеек, отображаемых в целях сбора."
- indexPathsForVisibleItems: каждый элемент представляет собой «видимую ячейку в виде коллекции».
- cellForItemAtIndexPath:: возвращает «
nil
, если ячейка не отображается».
Все это специально упоминает «видимые» в своих описаниях. С введением предварительной выборки в iOS 10, как бы я мог различать предварительно выбранную ячейку против той, которая в настоящее время видима?
Другими словами:
- Как получить все видимые ячейки?
- Как получить все загруженные ячейки?
Не похоже, что в UITableView или UICollectionView есть какие-либо новые API-интерфейсы, которые могут помочь в этом.
Там новый протокол '' UITableViewDataSourcePrefetching' для UITableView' в прошивке 10. Я написал статью об этом и сделал несколько измерений: https://andreygordeev.com/2017/02/20/uitableview-prefetching/ –