0

通常、Cell nil の条件外で Cell を構成します。私の場合、NSData を Cell nil の外側の画像に変換するのと同じことをしています。そのため、リクエストを発行してテーブルをリロードするたびに、特定のセルのデータを画像に完全に変換します。しかし、テーブルをリロードした後、私の問題は、テーブルをスクロールするたびに、NSData が明らかな画像に変換されることです。テーブルをリロードした後のスクロールでこの変換を避ける必要があります。

    static NSString *CellIdentifierImage =  @"CellIdentifierImage";
if(indexPath.section == 0)
    {
        NewsImageCell *newsImageCell = [tableView dequeueReusableCellWithIdentifier:CellIdentifierImage];

        if (newsImageCell == nil)
        {
            NSLog(@"CellNil");
            newsImageCell = [[NewsImageCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifierImage];
            newsImageCell.selectionStyle = UITableViewCellSelectionStyleNone;
        }

        if([[ApplicationData sharedInstance].arrTop10NewsHome count]>0)
        {
            NSMutableDictionary *dicSource = [arrSource objectAtIndex:indexPath.row];
            NSURL *urlImage = [NSURL URLWithString:[dicSource retrieveForPath:@"ItemImage"]];
            newsImageCell.lblNewsHeading.text = [dicSource objectForKey:@"Title"];
            [newsImageCell.loadingIndicator startAnimating];
            dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul);
            dispatch_async(queue, ^{
                UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:urlImage]];
                dispatch_sync(dispatch_get_main_queue(), ^{
                    newsImageCell.imgVwNews.image = image;
                    [newsImageCell.loadingIndicator stopAnimating];
                });
            });
        }

        return newsImageCell;
    }

あなたのアイデアに感謝します よろしくお願いします!!!

4

2 に答える 2

0

UIImageViewの代わりに EGOImageView を使用します。

EgoImageViewのデモ プロジェクトを参照してください

于 2013-05-15T06:01:48.583 に答える
0

この状況に最適なHJCache https://github.com/markofjohnson/HJCacheを使用できます。

于 2013-05-15T06:05:28.153 に答える