加载图片会减慢我的应用

时间:2010-08-26 16:17:28

标签: iphone xml

我是iphone dev的新手,我只是想完成一些事情。

我做了我的第一个XML解析器App。当我的应用程序启动时,我设置了一个带有自定义单元格的tableView。自定义单元格中有两个标签和一个图像。

当启动表视图时,我调用我的自定义单元格方法,该方法将字符串映射到图像的地址,然后使用它创建一个网址,来自网址内容的nsdata比使用此数据的内容创建我的图像。

但即使在模拟器上我的表视图也非常慢。

通过互联网在iphone上显示图像的最佳方式是什么? ? 我知道他们必须采用png格式,但即使使用png也太慢了

感谢所有

我用:

>     NSURL *imgUrl = [NSURL URLWithString:_text]; 
>       NSData *imgData = [NSData dataWithContentsOfURL:imgUrl]; 
>       limage.image = [UIImage imageWithData:imgData];

2 个答案:

答案 0 :(得分:1)

您的图片是否以最终分辨率保存?假设您要在表格中显示25x25像素的图像,文件是保存为25x25图像还是保存为更高的分辨率?这会导致一些缓慢。但是,您应该在后台线程中加载图像,以便在滚动时滚动不会等待图像加载。请记住,进行网络传输以获取图像很可能是该过程中最长的部分。您还应该以某种方式缓存图像,而不是仅将图像分配给limage.image属性。这样,每次重绘单元格时都不会重新下载图像。

修改

此外,您不必将PNG图像用于表格单元格中的图片。如果需要,您可以使用常规JPG或GIF图像。使用的图像格式应该是适合您将拥有的图像内容类型的格式。您只需使用PNG作为图标和启动画面,但最好在所有嵌入资源中使用PNG。

答案 1 :(得分:0)

[NSData dataWithContentsOfURL:imgUrl]; 

肯定会减慢你的应用程序速度,因为它会等待你的图像加载完成,称为同步调用。你真正想要的是异步调用来获取图像的内容。

看看http://joehewitt.com/post/the-three20-project/你会在哪里找到一个很好的UIImage子类,它支持通过url处理图像加载。