Есть ли способ вставить новые элементы при загрузке больше на ASCollectionNode Горизонтальная прокрутка - PullRequest
0 голосов
/ 19 февраля 2019

Я использую горизонтальную прокрутку ASCollectionNode и пытаюсь заархивировать прокрутку влево, чтобы загрузить больше и вставить элементы. Но когда я дохожу до последнего элемента слева, элементы вставляются слева, а не справа.

Я реализовал вставку следующим образом ..

 func addRowsIntoPhotoCollection(newPhotoCount newPhotos: Int) {
 let indexRange = (photoFeedModel.numberOfItems - newPhotos..<photoFeedModel.numberOfItems)
    let indexPaths = indexRange.map {  IndexPath(row: $0, section: 0) }
    collectionView.performBatchUpdates({
        collectionView.insertItems(at: indexPaths)
    }) { (done) in
        if self.shouldScroll == true {
              self.scrollToBeginning()
        }
    }
}

1 Ответ

0 голосов
/ 25 февраля 2019

Для добавления ячеек в конец списка вы должны создать массив IndexPath с терками строк, а затем существующиеRows (collectionView (_ collectionView: UICollectionView, numberOfItemsInSection section: Int)

  [indexPaths addObject:[NSIndexPath indexPathForRow:existingRows + i inSection:0]];

быстрая версия, например, похожаяздесь:

var indexPaths: [IndexPath] = []

// find number of kittens in the data source and create their indexPaths
var existingRows: Int = kittenDataSource.count + 1

for i in 0..<moarKittens.count {
    indexPaths.append(IndexPath(row: existingRows + i, section: 0))
}

// add new kittens to the data source & notify table of new indexpaths
kittenDataSource.append(contentsOf: moarKittens)
if let indexPaths = indexPaths as? [IndexPath] {
    tableNode.insertRows(at: indexPaths, with: .fade)
}
...