iOS CALayer之CAEmitterLayer粒子发射器的神奇效果
https://www.jianshu.com/p/c54ffd7412e7
想必以前QQ空间的点赞效果大家都知道吧,点赞之后按钮周围会有一圈爆裂的小圆点;还有微信的红包雨表情动画等,以及烟花,火焰效果。这些看似很炫酷的动画可能让我们敬而远之,但是其实iOS封装的很好,利用简单的几行代码就能完成很炫酷的动画效果。由于目前正在玩儿iOS动画的内容,利用iOS的CAEmitterLayer结合CAEmitterCell能够达这些效果。不BB了,先上几个效果图。代码已传githubEmitterAnimation。
马丹 有没有办法一次性放很多个gif呀。。。。。。。
CAEmitterLayer
与CAEmitterCell
CAEmitterLayer
是CALayer
的一个常用子类,CALayer
的子类有很多,如果能很好的使用它们会得到一些意想不到的效果。CAEmitterLayer
就是其中之一,CAEmitterLayer
是用于实现基于Core Animation
的粒子发生器系统。
所谓粒子,就是很多小颗粒,当让QQ空间的点赞动画的粒子也可以不用CAEmitterLayer
粒子发生器来实现,不过这样会麻烦很多。在粒子系统中,CAEmitterLayer
是用来发射粒子的,他所发射的粒子就是CAEmitterCell
(当然粒子也可以发射粒子,也就是CAEmitterCell也可以发射CAEmitterCel
l)。可以认为CAEmitterLayer
是CAEmitterCell
的工厂,通过不同的设置就会不断的产生想要的粒子。
原理其实很简单,但是动画就是这样,需要花时间去理解属性,只有很好的用它的属性,才能达到很炫酷的效果。查看API会发现CAEmitterLayer
和CAEmitterCell
的属性都是很多的,并且有很多相同的属性。在CAEmitterLayer
中,一些属性决定了粒子从什么样的几何特性上发射出来,这个几何特性包括了位置,形状,大小,并且还有一些渲染属性,用于一些渲染的效果。另外一些属性CAEmitterLayer
和CAEmitterCell
都有的,在这里可能会迷糊,但是API说明的很清楚,CAEmitterLayer的这些属性会作为CAEmitterCell
相同属性的系数,举个
最新文章
- Native与H5交互的一些解决方法
- Linux下提示 bash: xxx command not found
- setAttribute,,,getAttribute,,,,
- jqurey 中dialog未定义问题
- 创建,增加,删除mysql表分区
- datagrid url json
- cocos2dx下最大纹理大小取决于平台
- Winform中修改WebBrowser控件User-Agent的方法(已经测试成功)
- jQuery的MP3、视频播放器jPlayer
- CTS/GTS 常见问题解答
- 逻辑卷lvm创建、扩展、缩小
- Java数据结构和算法(十四)——堆
- react-native-image-picker 运用launchCamera直接调取摄像头的缺陷及修复
- Shell 自动化部署免密登录
- javascript基础 之 代码规范
- MySQL官方教程及各平台的安装教程和配置详解入口
- NOIP2017逛公园(dp+最短路)
- CH 1402 - 后缀数组 - [字符串hash]
- matlab入门笔记(七):数据文件I/O
- Linux下Nagios的安装与配置 及遇到的坑