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、图片合成

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容