У меня есть ниже код, называемый в:UICollectionView не перегрузочные ImageView клетки
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
К сожалению, когда я звоню [collectionView reloadItemsAtIndexPaths:@[indexPath]];
ImageView внутри не обновляется. Если я вызываю reloadData, это так. Я стараюсь, чтобы код был максимально эффективным, поэтому я не хочу просто переписывать reloadData. Будет ли у кого-нибудь представление о том, почему это не работает или что еще мне нужно делать? У меня уже было несколько других проблем с загрузкой многочисленных запросов API-изображений, которые конфликтуют с прекрасным материалом endAnimations от collectionView. Любая помощь будет оценена по достоинству.
SearchResultsCollectionViewCell *searchResultCell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([SearchResultsCollectionViewCell class]) forIndexPath:indexPath];
Product *product = self.products[indexPath.row];
UIImage *productImage = [self.imageCache imageForURL:product.fullImageUrl];
if (productImage) {
searchResultCell.productImageView.image = productImage;
} else {
[self.imageCache downloadImageForURL:product.fullImageUrl indexPath:indexPath withCompletion:^(UIImage *image, NSError *error) {
if (!error) {
searchResultCell.productImageView.image = image;
// [collectionView reloadData];
[collectionView reloadItemsAtIndexPaths:@[indexPath]];
}
}];
UIImage* image = [UIImage imageNamed:@"001_logo"];
searchResultCell.productImageView.image = image;
}
Первое, что нужно отметить (но я не думаю, что это причина) заключается в том, что вы меняете код 'indexPath.row' на' indexPath.item'. – Fogmeister