У меня есть UICollectionView с фотографиями, где каждая ячейка имеет одинаковое соотношение сторон фотографии. Данные о ширине и высоте фотографии хранятся в CoreData.
Я реализовал sizeForItemAtIndexPath
:
- (CGSize)collectionView:(UICollectionView *)collectionView
layout:(UICollectionViewLayout *)collectionViewLayout
sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
PhotoModel* model = [self.fetchedResultsController objectAtIndexPath: indexPath];
return [self.cellAspectSizeWithFullSize: model.size];
}
sizeForItemAtIndexPath
вызывается для ALL ячеек, поэтому для большого количества фотографий это занимает много времени из-за objectAtIndexPath
.
Есть ли способ, как я могу реализовать ячейки размеров сторон из данных в основных данных, которые будут иметь такую плохую производительность?
Я попытался самостоятельно определить размеры ячеек, устраняя необходимость вызывать sizeForItemAtIndexPath, но затем я теряю способность анимировать изменения компоновки, которые мне нужно сделать в моем проекте (анимация зависит от предполагаемого размера, а не от того, который указан в ячейке).