50 個の画像 URL を含む画像 URL plist があります。それを UICollectionview に表示しようとしていますが、遅くなりすぎています。一度に 9 個のセル (画像) を 3x3 (3 行と 3 列) のように表示しています。最初に表示するにはどうすればよいですか?ロード時に9枚の画像、次のスクロールで次の9枚の画像.?それは可能ですか? 画像をロードするためにSDWebImagesを試しましたが、うまくいきません。助けてください。
CODE INSIDE collectionView cellForItemAtIndexPath: () コメント内のコードは、画像の読み込みに時間がかかります。そのコードは、画像が存在しない場合にドキュメント ディレクトリから画像を読み込むために使用され、1 か所のホルダー画像に表示されます。
cell = nil;
cell = (GMMCollectionViewCell *)[self.collectionView dequeueReusableCellWithReuseIdentifier:@"test" forIndexPath:indexPath];
cell.tag = indexPath.row;
docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *path;
BOOL isImageLoaded = YES;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
bookImage = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@", docPath, [[allbooksImage objectAtIndex:indexPath.row] lastPathComponent]]];
/////////////////////////////////////////////// ///////////////////////////////
if(bookImage == nil){
isImageLoaded = NO;
}
if(!isImageLoaded){
[[cell grid_image] setImage:[UIImage imageNamed:@"App-icon-144x144.png"]];
} else{
[[cell grid_image] setImage:bookImage];
}
sharedManager.bookID=bookId;
return cell;
これは私が期待しているものです
しかし、私はこのようになっています、スクロールなしのアプリの読み込み時間(最初の画像:3列は空です)
最初のスクロール後のアプリ画面 (2 番目の画像: 2 つの画像を表示する最後の列、残りの部分はまだ空)
長いスクロール後のアプリ画面 (3 番目の画像: 最後の列にいくつかの画像があり、残りの列はまだ空です)
アプリ画面をもう一度上にスクロールすると、最初の画像が変わります