我是iphone dev的新手,我只是想完成一些事情。
我做了我的第一个XML解析器App。当我的应用程序启动时,我设置了一个带有自定义单元格的tableView。自定义单元格中有两个标签和一个图像。
当启动表视图时,我调用我的自定义单元格方法,该方法将字符串映射到图像的地址,然后使用它创建一个网址,来自网址内容的nsdata比使用此数据的内容创建我的图像。
但即使在模拟器上我的表视图也非常慢。
通过互联网在iphone上显示图像的最佳方式是什么? ? 我知道他们必须采用png格式,但即使使用png也太慢了
感谢所有
我用:
> NSURL *imgUrl = [NSURL URLWithString:_text];
> NSData *imgData = [NSData dataWithContentsOfURL:imgUrl];
> limage.image = [UIImage imageWithData:imgData];
答案 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处理图像加载。