UICollectionViewのすべてのセルにUIImageViewがあり、コレクションをスクロールするときにそれらが正しく表示され、すべてのイメージがセルのインデックスパスに1回ロードされるように、ロードする必要があります。Lazy Loading UICollectionViewイメージ
すべての画像はKinveyからダウンロードされます。すべての画像をダウンロードする
コード:
UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"Cell" forIndexPath:indexPath];
UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, cell.bounds.size.width, cell.bounds.size.width)];
[cell addSubview:imageView];
[KCSFileStore downloadData:@"id for item at index path"] completionBlock:^(NSArray *downloadedResources, NSError *error) {
if (error == nil) {
KCSFile* file = downloadedResources[0];
dispatch_async(dispatch_get_main_queue(), ^(void){
imageView.image = [UIImage imageWithData:file.data];
});
NSLog(@"Downloaded.");
} else {
NSLog(@"Error: %@", error.localizedDescription);
}
} progressBlock:nil];
"dispatch_async(dispatch_get_main_queue()、^(ボイド)..." 私は非同期的に画像をダウンロード私の問題を解決しようとしたものですが、それがなかったこと作品。事前に
感謝。
正確に何をしたいですか?バックグラウンドで画像をダウンロードし、スクロールして表示する必要がありますか? – Santo
これはcellForRowで行われます...もしそうならば、ビューのレンダリングがゆっくりと遅くなり、ビューが積み重なり続けるようになるimageViewを追加し続けるでしょう – Joshua