iOS 核心动画学习笔记(1)- 图片的载入优化

1、图片解压显示:
开一条后台线程1:
先获得UIImage, 然后来一个图片上下文画布,用UIGrapicsXX c的接口,将UIImage绘制到上下文UIGraphicsBeginImageContext
UIGraphicsBeginImageContextWithOptions
image drawAtPoint:CGPointZero
然后又从context上取出UIImage:UIGraphicsGetImageFromCurrentImageContext
图片解压完毕。

回到主线程:
设置imageview的image属性。

完成。

2、使用CATiledLayer
- (void)drawLayer:(CATiledLayer *)layer inContext:(CGContextRef)ctx
在drawLayer方法中,把uiimage 绘画到layer bounds中的区域。

3、分辨率交换
其实还是用到1的方法, 当view在滚动时, 使用低分辨率的图片,如果没有低分辨率的图片, 就将大的图片绘制到较小的CGContext,然后存储起来,重复使用此低分辨率图片。

4、图片缓存
UIImage imageNamed方法底层苹果是有缓存机制的, 但是具体缓存规则不详。 可以考虑用NSCache。揉合1,2,3方案一起使用。

  • 从NSCache取image
  • 开一条后台线程, 从文件读出来uiimage, 重新绘制,得到解压版的uiimage
  • 回到主线程, 对UIImageView的image属性进行设置。
  • 并且将解压版的图片存储到NSCache中。

5、选择png还是jpeg

6、图片合成

你可能感兴趣的:(iOS 核心动画学习笔记(1)- 图片的载入优化)