【问题标题】:How to load image faster in iPhone?如何在 iPhone 中更快地加载图像?
【发布时间】:2011-11-10 15:56:22
【问题描述】:

我正在使用 ASIHTTPRequest 从 WCF 中提取 JSON 数据。然后我遍历数据并从 URL 获取图像以显示 UITableView。这种做法在 3G 网络上非常慢。有什么办法可以让它更快!

这是一个示例代码

这段代码将从 URL 中获取图像。这是在 tableView cellFroRowAtIndexPath 下:

// Add image
NSString* trimmedCode = [[courseList objectAtIndex:indexPath.row] stringByReplacingOccurrencesOfString:@" " withString:@""];
NSString *imageName = [NSString stringWithFormat:@"http://www.someURL.com/images/%@.png", trimmedCode];
NSURL *url = [NSURL URLWithString: imageName];
cell.myImage.image = [UIImage imageWithData: [NSData dataWithContentsOfURL:url]];

return cell;

有什么帮助吗?

【问题讨论】:

    标签: iphone objective-c uitableview 3g


    【解决方案1】:

    3G 的响应时间很慢。它旨在在启动后以相当快的速度发送文件。但是每个 http 请求都会产生很大的延迟。

    这就是为什么你看不到超过 3G 的实时动作多人游戏。

    【讨论】:

    • 那么,有没有什么办法可以预先在后台缓存数据(图片)?
    • 也许您可以将图像打包到服务器上的某种存档中,这样您只需执行一个 http 请求即可获取所有图像。或者您可以编写一个单独的线程来执行循环以异步获取图像。
    【解决方案2】:

    我使用的一个很棒的库是 EGOPhotoViewer。您可以异步加载图像,它会自动为您缓存图像,因此您无需再次下载它们。最好的部分是您可以显示占位符图像,直到下载所需的图像。

    你可以在这里找到图书馆:https://github.com/enormego/PhotoViewer

    注意:我与这个库的创建者或创建者没有任何关系。这是基于three20项目的一个很棒的项目。

    【讨论】:

      【解决方案3】:

      我在Stackoverflow 上发现了一个类似的问题,它解决了我的答案。我的问题的更具体答案是,我正在使用SDWebImage 库。使用起来要简单得多!感谢大家的支持。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-12-02
        • 2019-09-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-03
        • 1970-01-01
        相关资源
        最近更新 更多