0

こんにちはここで答えを見つけました: UITableView で混同される画像 - XML 解析

UITable に入れている画像へのリンクを含む XML ファイルを解析しています。表を下にスクロールすると、何らかの理由で写真が完全に混同されてしまいます。UITable に使用しているコードは次のとおりです。

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

    static NSString *CellIdentifier = @"Cell";
    Tweet *currentTweet = [[xmlParser tweets] objectAtIndex:indexPath.row];

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil)
    {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];

        CGRect imageFrame = CGRectMake(2, 8, 40, 40);
        customImage = [[UIImageView alloc] initWithFrame:imageFrame];
        [cell.contentView addSubview:customImage];

    }

    NSString *picURL = [currentTweet pic];
    if (![picURL hasPrefix:@"http:"]) {
        picURL = [@"http:" stringByAppendingString:picURL];
    }

    customImage.image = [UIImage imageWithData:[NSData dataWithContentsOfURL: [NSURL URLWithString:picURL]]];

    return cell;
}

私が間違っていることは何か分かりますか?どんな助けでも大歓迎です。どうも!

4

2 に答える 2

1

これは、再利用可能なセルをデキューしているためです。以前に使用された画像が含まれていたセルをリサイクルしています。

セルを初期化しているのと同じifブロックで画像を設定していることに気付きました。私があなただったら[cell.contentView addSubview:customImage];、return ステートメントの直前に移動します。この方法では、デキューされたセルをリサイクルするときに、画像が含まれません。

于 2013-01-21T15:07:39.440 に答える
0

画像は Web からダウンロードされていますか?

その場合、画像のダウンロードの遅延が原因です。マルチスレッドで行う必要があります。

この例を見てください...

Apple の LazyTableImages サンプルに関する質問 - アプリ ストアとまったく同じように動作しない

UITableView画像とs の遅延読み込みに関するオンラインのチュートリアルも多数あります。

于 2013-01-21T14:45:15.313 に答える