标签:提前 释放 content 多次 you 交互 缓存 透明图 解码
一般优化的思路:
提前计算并缓存好高度(布局),因为heightForRowAtIndexPath:是调用最频繁的方法。
复杂界面可采用异步绘制。
在大量图片展示时,可以滑动时按需加载。
尽量少用或不用透明图层,多个透明元素重叠显示可采用合并成一张图片显示。
减少subviews的数量,如果是不需要交互可以使用CALayer 替换掉 UIView。
在heightForRowAtIndexPath:
中尽量不使用cellForRowAtIndexPath:
。
根据场景合理使用imageWithContentsOfFile和imageNamed。
页面元素多的时候,减少autolayout布局,采用frame。
缓存NSDateFormatter结果,不多次创建,及时释放。
图片解码时,CALayer 被提交到 GPU 前,CGImage 中的数据才会得到解码,GPU执行,卡主线程。常见的做法是在后台线程先把图片绘制到 CGBitmapContext 中,然后从 Bitmap 直接创建图片。
CALayer 的 border、圆角、阴影、遮罩(mask)触发的离屏渲染,可开启CALayer.shouldRasterize ,转嫁到CPU上或是截图或者采用图片实现。
使用RunLoop和多线程在闲时处理一些繁重的计算工作。
标签:提前 释放 content 多次 you 交互 缓存 透明图 解码
原文地址:http://www.cnblogs.com/weiming4219/p/7994644.html