1

いくつかのセルがあり、各セルに2つのUIImageがあるUITableViewで、パフォーマンスのためにUIImage非同期を更新します。しかし、質問があります。Webから画像を取得したときにのみセルにUIImageViewをリロードするにはどうすればよいですか。

私は、セル全体を「reloadRowsAtIndexPaths」という方法でリロードできますが、セルにリロードする必要があるUIViewオブジェクト(つまり、画像またはラベル)のみをリロードできるメソッドがあることを知りたいだけです。

ところで、1つのセルをリロードするだけで、方法「reloadRowsAtIndexPaths」がすべてのセルに対してメソッド「heightForRowAtIndexPath」を実行することがわかりました。何か問題でもありますか?

4

2 に答える 2

0

Appleのサンプル コードLazyTableImagesが必要かもしれません。

于 2012-07-01T17:02:32.250 に答える
0

カスタム セル呼び出しへの参照を取得しますtableView:cellForRowAtIndexPath:。次に、これを実行してイメージ プロパティを更新します。

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
    NSData *imageData = [NSData dataWithContentsOfURL:someURL];
    dispatch_async(dispatch_get_main_queue(), ^{
        cell.someImage = [UIImage imageWithData:imageData];
    });
});

NSURLConnection の制限であるため、最大 6 つの画像を同時にロードします。

于 2012-07-01T17:08:30.260 に答える