Guf*_*ros 0 xcode objective-c uiimage nsdata ios
我将照片相册中的图像存储在我的应用文档目录中作为NSData,而不是在UITableView中显示它们.我的表现有问题.将图像保存到app目录需要花费几秒钟的时间,并且在将它们加载到TableView时遇到同样的问题.这是我存储图像的代码:
//Convert UIImage to NSData
NSData *imageData = [NSData dataWithData:UIImagePNGRepresentation(image)];
//Save image to app documents directory
NSError *error;
[imageData writeToFile:fullImagePath options:NSDataWritingAtomic error:&error];
Run Code Online (Sandbox Code Playgroud)
这就是我将它们加载到UITableView中的方法:
NSData *imageData = [NSData dataWithContentsOfFile:path];
UIImage *myImage = [UIImage imageWithData:imageData];
cell.imageView.image = myImage;
Run Code Online (Sandbox Code Playgroud)
什么可能导致这些性能问题?是否有任何其他方式来存储和检索应用程序文档目录中的图像?
两种方法:
首先,您可以考虑在保存之前缩小图像,或者在表格视图中保存另一个较小的副本以供显示.这取决于你需要多么好的图像 - 大概是桌面视图不如具有MB数据的全尺寸图像那么大.实际上,如果图像被正确缩放,图像也会看起来更好.这本身应该照顾延迟.
其次,您可以考虑异步加载图像.维护要下载的可变图像阵列.创建一个执行下载的单例,并在完成后通知表视图.设置cell.imageView.image在通知(或委托)回调中.
| 归档时间: |
|
| 查看次数: |
807 次 |
| 最近记录: |