从苹果文档学习CoreAnimation(一)
来源:互联网 发布:linux oracle 软件包 编辑:程序博客网 时间:2024/05/17 08:15
作为一个iOS小白,前辈无数次跟我提醒说,学习iOS最好的办法就是从苹果的官方文档入手,但碍于中国人普遍英文能力薄弱,一开始我还是和大部分人一样靠着一些中文资料入手(其实也是不错的方法),虽然现在已经拥有初步的开发经验,但是对动画方面还是知之甚少,于是乎,就有这篇博客,对了,在写这篇博客的时候,我还没开始看文档,边看边学边操练边写博客试试!
首先是关于CoreAnimation的优势,我们知道UIView的drawRect能通过不断地重绘来形成动画的效果,但是它有性能的瓶颈,文章原话:drawing in this way is expensive because it is done using the CPU on the main thread. 调用drawRect会在主线程中使用CPU来绘制,我们知道主线程是来处理UI的变化,如果我们大量的使用drawRect来做动画,无疑会影响UI的交互,而且它是直接使用CPU进行绘制。
然后CoreAnimation如果做动画的呢,那得先了解它是layer层上的绘制(layer-based drawing),上面说的是视图上的绘制(view-based drawing),主要区别在于它是在图形硬件(graphics hardware)上处理图形内容,而不是通过CPU用软件形式去绘制,文档说在图形硬件上处理比用软件形式快得多(Manipulating the bitmap in hardware yields much faster animations than could be done in software)。
首先是获取你app提供的需要绘制的内容,然后将它缓存在位图(bitmap),有时候就是指图中的Backing Store,这时候,你改变关于layer对象的一些属性,图中是旋转45°,CoreAniamtion就会将缓存的位图和旋转的信息传给图形硬件去处理(图例是旋转),然后将具有新特性的位图显示在用户层上,这里可以看出CoreAnimation实际的作用的用来传递layer对象的信息给图形硬件,而且因为有缓存,如果绘制同一个layer对象,将直接从缓存上取,提高效率。
这篇先写到这里,第一次写博客,先看看效果,有兴趣的同学多多交流哈!
- 从苹果文档学习CoreAnimation(一)
- 从苹果文档学习CoreAnimation(二)
- iOS-CoreAnimation基础(一)
- CoreAnimation学习(图层)
- CoreAnimation 学习
- 从CoreAnimation到Pop
- 苹果开发文档学习链接
- CoreAnimation 细说动画(一)
- 从CoreAnimation到Facebook‘s Pop(1)
- linux学习文档(一)
- CoreAnimation的学习备忘录
- CoreAnimation的学习备忘录
- CoreAnimation的学习备忘录
- iOS学习之CoreAnimation
- CoreAnimation学习笔记
- CoreAnimation系统学习笔记
- CoreAnimation详解(一)有关Layer的动画
- iOS动画和特效(一)UIView动画和CoreAnimation
- Android ViewPager+Fragment实现首页滑动翻页
- 最近关于编程的一些反思
- Android异步更新UI的方式之使用Handler消息传递机制
- OC学习之Runtime之关联对象
- Android 在Service中监听软键盘显示状态
- 从苹果文档学习CoreAnimation(一)
- 总结c/c++中各种基本数据类型转换方法
- 产品经理如何做好行业研究及竞争对手分析工作
- 日经春秋 20150915
- Android Studio 运行时出现 finished with non-zero exit value 2
- 数字证书原理
- html iframe高度自适应
- maven项目部署到Repository(Nexus)
- 虚拟机在64位CentOS搭建lamp环境出现的一些报错以及解决方法