iOS 提升 UIImage 性能
使用 UIImage 加载大图片时,有时会导致界面卡顿,特别是在 UITableView 中上下拖动切换不同图片时更为明显。这是因为 UIImage 初始化后仅仅是把图片加载到内存中,而实际的解码和重采样是在图片需要显示时才进行(例如在 UIImageView 中),此时这些操作都在 UI 主线程中完成。因此,当图片比较大(尤其是图片大小和实际显示大小相差较大)时,解码和重采样是一个非常耗性能的操作,导致 UI 卡顿。解决方法是在子线程中先完成重采样,这样在显示时就省去了重采样所需的性能消耗。
图片重采样(参考官方例子 LazyTableImages ):
1
2
3
4
5
6
|
|
浙公网安备 33010602011771号