【问题标题】:Image in the TableView Cell causes delay when scrollingTableView Cell 中的图像在滚动时会导致延迟
【发布时间】:2010-09-09 18:15:01
【问题描述】:

我已将图像放入我的 tableview 单元格中,该图像位于某个 URL 中。 我的问题是,当我的 tableView 已经显示数据时, 然后上下滚动表格视图,它需要一些时间或延迟才能对滚动做出反应..

我发现问题出在 URL 中的图像中,我还需要在 tableview 单元格中显示每个图像。 知道如何解决吗?还是要优化?

这是我的代码:

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

static NSString *CellIdentifier = @"Cell";

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

// Set up the cell
NSUInteger row = [indexPath row];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;

NSArray *arrLocal = [m_list objectAtIndex:row];
if ([arrLocal count] > 0) {
    cell.textLabel.text = [arrLocal objectAtIndex:2];
    cell.textLabel.font = [UIFont boldSystemFontOfSize:14];
    cell.detailTextLabel.text = [arrLocal objectAtIndex:3];
    cell.detailTextLabel.font = [UIFont systemFontOfSize:12];

            //sample url of the image: http://www.mysite.com/images/DealExtreme/2657_1_small.jpg
    NSString *strTemp = [[NSString alloc] initWithString:@"http://www.mysite.com/"];
    NSString *urlString = [strTemp stringByAppendingString: [arrLocal objectAtIndex:1]];
    NSURL *url = [NSURL URLWithString:urlString];
    UIImage *image = [UIImage imageWithData: [NSData dataWithContentsOfURL:url]];
    cell.imageView.image = image;       
    [strTemp release];
}

return cell;
 }

【问题讨论】:

    标签: iphone uitableview


    【解决方案1】:

    问题是您每次调用 cellForRow 时都在下载图像,我建议您在后台加载图像...一种方法是制作您的自定义单元格,让它们有一个方法或类似的东西排序将在背景中加载图像然后设置它,另一种方法可能是在背景中加载所有图像并保留它们,然后设置单元格图像,这样每次单元格出现在屏幕上时您都不会重新加载图像...希望对您有所帮助

    【讨论】:

      【解决方案2】:

      您必须异步加载该图像数据,否则您将阻塞主线程。你肯定想避免这种情况。它会使您的应用程序无响应,如果延迟足够大,您的应用程序可能很容易被操作系统杀死。

      因此开始在后台下载图像(使用NSURLRequestNSURLConnection)并在数据完成后刷新单元格的内容。

      【讨论】:

        猜你喜欢
        • 2012-09-08
        • 2013-02-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多