У меня есть UICollectionView
, который я пытаюсь вставить в него элементы динамически/с анимацией. Поэтому у меня есть функция, которая загружает изображения асинхронно и хочет вставлять элементы в пакеты.
Как только у меня появятся мои данные, я хотел бы сделать следующее:
[self.collectionView performBatchUpdates:^{
for (UIImage *image in images) {
[self.collectionView insertItemsAtIndexPaths:****]
}
} completion:nil];
Теперь вместо ***
я должен передать массив NSIndexPaths
, который должен указывать на местоположение новых элементов, которые нужно вставить. Я очень смущен, так как после предоставления местоположения, как мне представить фактическое изображение, которое должно отображаться в этой позиции?
Спасибо
UPDATE:
resultsSize
содержит размер массива источников данных self.results
, прежде чем новые данные будут добавлены из данных в newImages
.
[self.collectionView performBatchUpdates:^{
int resultsSize = [self.results count];
[self.results addObjectsFromArray:newImages];
NSMutableArray *arrayWithIndexPaths = [NSMutableArray array];
for (int i = resultsSize; i < resultsSize + newImages.count; i++)
[arrayWithIndexPaths addObject:[NSIndexPath indexPathForRow:i inSection:0]];
[self.collectionView insertItemsAtIndexPaths:arrayWithIndexPaths];
} completion:nil];