关于图片解压缩,导致scrollView滚动卡顿

本文探讨了iOS中图片解压缩导致的ScrollView滚动卡顿问题,建议使用CATiledLayer分块加载和缓存解压缩版本以提高性能。推荐在服务器上优化png图片,考虑使用高质量jpeg以减小文件大小和解压缩时间。同时,利用NSCache管理解压缩图片,平衡内存使用和滚动体验。
摘要由CSDN通过智能技术生成

可以看出在开发的时候,如果scrollView中有很多图片,那么在拖动的过程中,会有明显的卡顿,这是因为每次显示一个UIImageView的时候都需要将图片文件解压缩并渲染到屏幕上这一系列工作上,然而UIimage仅仅在图片将要显示的时候进行这个解压缩操作,而这个操作又是在主线程中执行的,所以造成了卡顿;


图片的两种格式,jpeg和png,苹果推荐使用png作为用户界面图片的显示格式,png图片的格式会被一个叫做pngcrush开源的框架优化,可以更快的解压缩,但是可能会造成app过大,png图片对于应用中自带的图片来说非常好,但对于从internet上下载的图片就不一定了


对于从internet,png格式的图片有alpha通道,jpeg没有,png无损压缩,jpeg允许你选择压缩质量,也就是说如果你不需要一个完美的图片,那么就可以使用jpeg,jpeg会忽略你看不到的东西,一般60%以上的压缩质量都不会有明显的影响,对于要求高的图片则需要选择高压缩质量的了比如文字


对于一个图片的显示时间上有三个方面的考量1.从磁盘上alloc init的时间2.解压缩的时间.3解压缩后的byte转换成CGContext的时间

空间上1.磁盘空间通过internet传输小号的空间。2.解压缩消耗的空间3.显示一个view,view本身需要空间存储layer



在非主线程上进行了解压缩操作,但是渲染绘制图片仍然会占用很长的时间,这时候可以用CATiledLayer来显示完成,将图片分为小块使用

在显示图片中,解压缩是消耗时间最多的,渲染的时间与压缩品质无关,只与图片的分辨率有关

100%品质的jpeg和png时间开销相同,但是png无法动态创建

jpeg压缩品质10-90%之间,空间开销成线性增长,90-100%增长很快


要保持scrollView不卡,解决办法是

当第一次使用图片,iOS会解压他,然后自己讲图片渲染成一个新的图片来解压这个图片,这样你将会获得两个解压版本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值