UITablew性能优化之栅格化

简介: UITablew性能优化之栅格化

在oc中提起性能优化,莫过于UITabliew.

在表格优化中性能优化有以下几点需要注意.

1.不能在cell的代理方法中动态创建子视图

2.cell中的图片要异步加载.

3.关于图片设置圆角,其实一直以来都有很大的争论.说到设置圆角究竟会不会导致性能优化呢?可是所谓的性能好右是什么呢?

那么就拿真机测试一番,因为真机CPU架构和模拟器的架构完全一样

在两帧之间,运算没有做完,就会造成卡顿,这个就是跳帧

刷新帧率(50-60)为优良

那么问题来了什么是一帧呢?

手机屏幕要想看到优良的画面从左到右,从上到下 都一个一个点画 这个就是完整的一帧图片

由于人体眼睛的特殊构造,视觉16帧会让人觉得是在动,24帧才会有优良的视觉体验.

为什么有些app会卡顿?会花?

因为摄像机的帧率是24帧.而电脑手机拥有良好的用户体验起码要50帧+

以及为什么有时候看电影车轮会倒着转?

因为倒时差,在车轮 的转速在某一个转速的时候跟摄像机的帧率吻合,给大闹皮层一种刺激)就会造成一种视觉差假象,看起来就像是倒着转.

说到这点,就不能不说栅格化

是一种美工(设计)的数语将cell中的所有内容,生成一张独立的图形

在屏幕滚动的时候,只显示图像

使用栅格化

Self.layer.shouldRasterize = yes

//栅格化必须要制定分辨率

Self.layer.resterizationScale =

[UIScreen mainScreen].scale

// 2.异步绘制 如果cell比较复杂,可以使用

Self.layer.drawAsynchronously = YES

如果要提高表格的性能,最关键的就是要减少计算量,就能保证每一帧都完成计算,从而达到流畅的效果,说白了也就是减少计算量

跳帧

就是在两帧之间运算还没有做完,就滚动到下一张图片去了,从而造成失帧

就会造成卡顿的感觉,用户的体验非常不好

好了,概念阐述清楚了,回到问题本身,如何优化?

1.行高一定要缓存.

2.不要动态创建子视图

所有的子视图都要预先创建好,不需要可以设置为hidden,或者高度为零

如果要说hidden和高度为零,那个性能更高,这个经过我测试在10000次测验几乎性能差距微微

3.所有的子视图都应该要加到contenView上

4.所有的子视图view都必须要指定背景颜色

为什么要指定背景颜色呢?因为没有指定颜色,让系统渲染的话,会大量消耗cpu的性能

5.所有的颜色都不要使用alpha (透明度)

什么不要使用透明度呢?还是因为图层渲染的问题.想象一下如果设置alpha透明度,系统就会为所有的图层一起渲染来渲染成透明度,这个需要cpu大量的计算,是非常耗性能的

6.cell栅格化

Layer.shouldRasterize =  true

Layer.rasterizationScale  =  UIScrren.mainreen().scale

7.异步绘制

Layer.drawsAsynchronously = true

8.尽量不要给图片设置圆角.如果非要绘制,那么久异步绘制.

其实最好是叫美工给一张原型图片

参考内容为:唐巧iOS高阶开发笔记

以上纯手码,如果你有更好的办法,请告诉我.如果那里有错,请告诉我!马上改.


相关文章
|
2月前
|
图形学 开发者
U3D开发进阶:精细调整Collider与优化碰撞检测性能
【7月更文第11天】在Unity 3D(简称U3D)开发过程中,精确控制Collider(碰撞器)的设置与合理利用Layer Collision Matrix(层级碰撞矩阵)对于提升游戏性能、优化物理模拟至关重要。本文将深入探讨这两项技术的应用,通过实际案例和代码示例,帮助开发者构建更加高效、流畅的游戏体验。
107 2
|
2月前
|
存储 SQL 运维
MSSQL性能调优精要:索引深度优化、查询高效重构与并发精细控制
在MSSQL数据库的运维与优化领域,性能调优是一项复杂而细致的工作,直接关系到数据库的稳定性和响应速度
|
存储 编译器 C语言
性能优化特性之:LTO
本文介绍了倚天实例上的编译优化特性:LTO,并从优化原理、使用方法进行了详细阐述。
|
前端开发 Serverless 开发者
前端工程化的前端性能的性能优化方案的网络层面优化之资源优化
资源优化是一种非常重要的前端性能优化方案,因为它可以在不同的环境中提高网页的响应速度和可接受性。
86 1
|
编译器 C++ Anolis
性能优化特性之:PGO
本文介绍了倚天实例上的编译优化特性:PGO,并从优化原理、使用方法进行了详细阐述。
|
前端开发 Serverless 开发者
前端工程化的前端性能的性能优化方案的渲染层面优化之懒加载
懒加载是一种非常重要的前端性能优化方案,因为它可以在不同的环境中提高网页的响应速度和可接受性。
80 0
|
移动开发 前端开发 JavaScript
前端工程化的前端性能的性能优化方案的渲染层面优化之DOM优化
DOM 优化是一种非常重要的前端性能优化方案,因为它可以在不同的环境中提高网页的响应速度和可接受性。
81 0
|
前端开发 开发者
前端工程化的前端性能的性能优化方案的网络层面优化之压缩
压缩是一种非常重要的前端性能优化方案,因为它可以在不同的环境中提高网页的响应速度和可接受性。
73 0
|
缓存 前端开发 JavaScript
前端性能中重要概念之性能优化方案
前端性能优化方案 在现代Web应用中,前端性能是非常重要的一环。在开发过程中,开发者需要寻找和实施各种前端性能优化方案,以提升应用的性能和用户体验。下面介绍一些常用的前端性能优化方案:
140 0
|
前端开发 JavaScript API
渲染性能优化的全局视角,教你做的比别人好
遇到性能优化的问题,大抵都会从两个方向入手:行业标准优化手段、实际性能瓶颈问题。既能够从先进的模式、方法、套路吸收借鉴,又能够结合实际性能情况设计应对方案,已然是高质量工作的路径了,但是,路上还充斥着各种判断和选择,稍有不慎还是会泥足深陷,走上“要你命 3000 ”的道路。
渲染性能优化的全局视角,教你做的比别人好