从苹果文档学习CoreAnimation(一)

作为一个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对象,将直接从缓存上取,提高效率。

这篇先写到这里,第一次写博客,先看看效果,有兴趣的同学多多交流哈!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值