2

私は現在、画像のダウンロードとスクロール ビュー内の約 20 の画像の表示を組み込んだアプリケーションに取り組んでいます。ダウンロードはうまく機能し、NSData から UIImage への変換もうまくいきます。ただし、複数のダウンロードが同時に終了した場合、つまり UIImageView の複数の画像プロパティが近接して設定されている場合、1 秒のラグ スパイクが発生します。このラグを減らすにはどうすればよいですか?

ダウンロードが完了したときに呼び出される私のコードは次のとおりです。これは、1 秒間隔で 20 回程度呼び出される可能性があります。

// _imageDataQueue is a dispatch_queue created in the init method
dispatch_async(_imageDataQueue, ^{

    // data is an NSData object set when the download completes
    UIImage *image = [UIImage imageWithData:data];

    dispatch_async(dispatch_get_main_queue(), ^{

        if (image) {

            // this is stripped down, but it is just some simple logic
            // and eventually the image is set
            [theImageView setImage:image];

        } else {

            // called if there is no image and theImageView's image is set
            // to a cached image
            [theImageView setImage:someCachedUIImage];

        }

    });

});

おそらく、setImage 呼び出しをキューに入れることができますか? これを修正する最善の方法は何ですか?

4

0 に答える 0