文档章节

iOS 界面流畅性能优化

hanbing94
 hanbing94
发布于 2016/04/07 20:49
字数 331
阅读 73
收藏 1
  1. 尽量选择更加轻量级的控件,相比较于uiwindow来说uiview更加轻量级,相比较于uiview来说calayer更加轻量级,所以一般在加载一个界面的时候尽量使用懒加载(什么时候使用什么时候加载,而不是一开始就全部加载出来),而且尽量在耗费大量cpu运行的地方使用异步开启后台线程执行并缓存,等到使用的时候再在缓存中取出使用。

  2. 关于渲染,  相比cpu和gpu的渲染,CPU是通过软件进行渲染,很多时候CPU的渲染会增加性能的消耗,gpu属于只有固定的函数的固定多边形渲染,cpu将渲染处理计算出来传递给gpu,gpu进行渲染,在uiview进行渲染的时候尽量选择更加高效底层的才能增加他的效率,比如 我们通过创建一个 cgcontextref  context= cgbitmapcontextcreate (.....)来创建一个位图,然后通过 cgimagedraw(context。。。。。cgimage);  (在此附上uiimage和cgiamgeref的相互转换,cgimageref  image=img。cgimage    uiimage * image=[uiimage  imagewithcgimage ])  将image 绘制到context上 ,然后将该位图加载到layer上,通过layer。contents=context。然后加载到view的layer上。(尽量在后台线程中执行)


© 著作权归作者所有

共有 人打赏支持
上一篇: c语言中栈的应用
下一篇: tableview 相关
hanbing94
粉丝 2
博文 67
码字总数 38602
作品 0
朝阳
私信 提问
加载中

评论(1)

小码爱大牛
小码爱大牛
你好,我是深圳一家以家居安防为核心的智能家居公司的HR在招聘一位iOS开发leader。不知道您自己或者身边同事朋友有没有在看工作机会的呢?如果感兴趣可以发简历到3288771685@qq.com或者加QQ。
IOS12开发者预览版第二版使用评测

     手头有一部iPhone 6s Plus,因为之前看同学和朋友们升到IOS 11后手机变得非常卡顿所以没有升级。最近偶然看到IOS 12针对旧机型做了性能优化,号称提升70%相机打开速度、50%键盘显示...

张旭乾
2018/06/23
0
0
iOS 9 受欢迎程度不如 Android 6.0!首先就是卡...

准确来说,目前智能手机只有两大操作系统,一个是iOS,而另外一个就是Android。两者拥有众多粉丝,有喜欢iOS的封闭,也有喜欢Android的开源。 作为后来者,Android一直在进步,一点点缩小着与...

oschina
2015/10/20
16.2K
117
iOS涂色涂鸦效果、Swift仿喜马拉雅FM、抽屉转场动画、拖拽头像、标签选择器等源码

iOS精选源码 LeeTagView 标签选择控件(http://www.code4app.com/thread-31033-1-1.html) 为您的用户显示界面添加美观的加载视图(http://www.code4app.com/thread-31038-1-1.html) Swift4: 可......

sunnyaigd
2018/09/19
0
0
instrument 之Core-Animation 性能调优(Color Blended Layers)

在性能优化中一个最具参考价值的属性是FPS:全称Frames Per Second,其实就是屏幕刷新率,苹果的iphone推荐的刷新率是60Hz,也就是说GPU每秒钟刷新屏幕60次,这每刷新一次就是一帧frame,FPS也...

夜空下最亮的亮点
2017/12/15
0
0
关于Android流畅度不如iOS的几点看法

网上一名据称是前谷歌实习生的人透露了一些关于Android系统硬件加速的内幕。据称,在 Android3.0和4.0之前,并没有完整的硬件加速。他们一直在通过硬件加速绘制某些UI元素,并称效果并不像他...

虫虫
2011/12/17
21.3K
28

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周三乱弹 —— 哽住

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @蓝瞳 :分享高橋広樹的单曲《銀河沿線'05<Vo>》:一直暗恋却无法表白的女孩在电车上疲倦不堪累得靠在他的肩上,播磨拳儿终于忍不住流下了眼泪...

小小编辑
40分钟前
79
5
shell输入内容时不显示内容

简介 大家都知道当我们ssh登录linux服务器的时候输入密码密码是不显示在屏幕上的,同样在我们写shell脚本的时候在获取用户密码的时候,有时候也希望不显示密码,这个是怎么做的呢 实例脚本 ...

bboysoulcn
今天
3
0
第11章 多线程

程序、进程、线程 程序(program)是为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码,静态对象。 **进程(process)**是程序的一次执行过程或是正在运行的一个程序。动...

流小文
今天
6
0
SpringBoot引入第三方jar包或本地jar包的处理方式

在开发过程中有时会用到maven仓库里没有的jar包或者本地的jar包,这时没办法通过pom直接引入,那么该怎么解决呢 一般有两种方法 - 第一种是将本地jar包安装在本地maven库 - 第二种是将本地j...

独钓渔
今天
2
0
五、MyBatis缓存

一、MyBatis缓存介绍 缓存的使用可以明显的加快访问数据速度,提升程序处理性能,生活和工作中,使用缓存的地方很多。在开发过程中,从前端-->后端-->数据库等都涉及到缓存。MyBatis作为数据...

yangjianzhou
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部