浅谈UI优化

卡顿掉帧:
在判断页面是否流畅时,我们通常会根据帧率是否保持60来判断。屏幕每秒会刷新60次,发出60次VSync 信号来接受视图渲染的结果。若是在信号来到前,渲染还没完成,这一帧的画面就会被丢弃,屏幕画面不发生改变,这时候就产生了掉帧卡顿。

UI优化方向:
画面的显示,需要CPU和GPU共同完成。在一个VSync 信号的时间内,CPU或GPU工作超时,都会造成掉帧。所以优化方向应该由CPU和GPU两方面入手。

CPU资源消耗主要原因:
1、对象创建:
对象的创建会分配内存、调整属性、甚至还有读取文件等操作,比较消耗 CPU 资源。如果可以用轻量的对象代替,对性能有所优化。比如不需要响应触摸事件的UIView用CALayer代替,用CATextLayer代替UILabel。另外,通过 Storyboard 创建视图对象时,其资源消耗会比直接通过代码创建对象要大非常多。

2、对象销毁:
对象的销毁虽然消耗资源不多,但当容器类持有大量对象时,其销毁时的资源消耗就非常明显。如果对象可以放到异步线程去释放,性能会有所优化。

3、布局计算和视图调整:
视图布局的计算是 App 中最为常见的消耗 CPU 资源的地方。尽量提前计算好视图布局、并且对视图布局进行缓存。
在层级较多的界面使用Autolayout也要注意,在iOS12之前,随着视图数量的增长,Autolayout 带来的 CPU 消耗会呈指数级上升。
当视图层次调整时,UIView、CALayer 之间会出现很多方法调用与通知,应该尽量减少调整视图层次、添加和移除视图。

<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值