UITableViewCell零条件

时间:2013-05-15 05:58:04

标签: iphone uitableview

通常我们在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;
    }

欣赏您的想法 提前致谢 !!!

2 个答案:

答案 0 :(得分:0)

使用EGOImageView代替UIImageView。

查看EgoImageView

的演示项目

答案 1 :(得分:0)

您可以使用HJCache https://github.com/markofjohnson/HJCache 哪种情况最适合这种情况。