2

setImageWithURLを使用して画像をテーブルビューセルに遅延ロードしていますが、問題があります。画像は正常に読み込まれますが、デバイスで更新の問題が発生しているようです。画像は、ビューからスクロールして元に戻したときにのみ表示されます。

シミュレーターで完全に機能します。デバイスはiPhone4SでiOS5.1.1を実行しています

このテーブルはUINavigationコントローラーに表示され、画像がキャッシュされるため、画面に戻ったときに画像がすぐに表示されると思います。ありますが、元のサイズの半分で表示されます。

画像のサイズは60x30です。

これは、画像が半分のサイズである網膜画面に画像をロードする際の問題ですか?この更新の問題の原因は何ですか?

以下のコードスニペット...

- (UITableViewCell *)tableView:(UITableView *)tableview cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableview dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) 
    {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];

    }

    ...
    [cell.imageView setImageWithURL:url placeholderImage:[UIImage imageNamed:@"transparent_shade"]];

    ...

    return cell;
}

洞察を事前に感謝します

4

1 に答える 1

2

メソッドの前に画像をロード/準備することをお勧めしcellForRowAtIndexPathます。スクロール後に画像が表示される理由は、このメソッドが呼び出されたときに画像が以前にダウンロードされていたため、ファイルがまだ利用できなかったためです。

NSMutableArrayたとえば、ビューのメソッドの内部を作成しviewWillAppear(存在しない場合はオーバーライドします)、すべての画像を配列内に配置します。次に、cellForRowAtIndexPath配列から画像を取得し、必要に応じてそれらを割り当てるだけです。遅滞なく、オンデマンドで表示する必要があります。

これがどのように機能するかをお知らせください。

于 2012-07-12T00:01:13.910 に答える