Я хочу создать представление коллекции с бесконечной прокруткой, поэтому в этом коде я добавляю 10 к количеству ячеек каждый раз, когда путь индекса равен последнему элементу ячейки, а затем перезагружаю данные в коллекции. Функция работает; Я могу прокручивать бесконечно, но если я остановлюсь, а затем прокручу немного вверх или вниз, все будет пустым. Ячейки не отображаются.
Моя теория заключается в том, что это как-то связано с dequeueReusableCellWithReuseIdentifier, и он решает отображать только те ячейки, которые в настоящее время находятся на экране.
Просмотр при прокрутке (я добавил числа в ячейки вне Xcode)
Просмотр с отсутствующими ячейками выше при небольшой прокрутке после остановки
private let reuseIdentifier = "Cell"
private var numberOfCells = 20
class CollectionViewController: UICollectionViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath)
if indexPath.row == numberOfCells - 1 {
numberOfCells += 10
self.collectionView?.reloadData()
}
cell.contentView.backgroundColor = UIColor.blueColor()
return cell
}
override func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int {
return 1
}
override func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return numberOfCells
}
}