0

これは、そのインデックスパスの画像が存在しない限り、特定のテーブル行にプレースホルダーを表示することになっています。下にスクロールすると、以前の indexPath の画像が解放されずにデフォルトで読み込まれます。以前に誰かが同じ問題で私を助けてくれたことは知っていますが、これは画像をキャッシュすることの重要性に気付く前のことです。私の customCell メソッドでは、UIImage プロパティを strong に設定し、viewDidUnload のイメージを解放します。

NSString *imagename = [_imageCache objectForKey:indexPath];
UIImage *preview = [_imageCache objectForKey:imagename];

if (preview)
{
    [[cell myImageView] setImage:preview];
}
else
{
    [[cell myImageView] setImage:[UIImage imageNamed:@"CellLogo.png"]];

            dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul);
            dispatch_async(queue, ^{

             //   __block UIImage *preview = nil;               
               UIImage *preview = [UIImage imageWithData:object.iG];
              //             }
         if (preview)
         {
                dispatch_async(dispatch_get_main_queue(), ^{

                 //   if (cell)
                    [[cell myImageView] setImage:preview];

                });
             [_imageCache setObject:preview forKey:imagename];
         }
            });
}
4

2 に答える 2