https://www.jianshu.com/p/c54ffd7412e7

想必以前QQ空间的点赞效果大家都知道吧,点赞之后按钮周围会有一圈爆裂的小圆点;还有微信的红包雨表情动画等,以及烟花,火焰效果。这些看似很炫酷的动画可能让我们敬而远之,但是其实iOS封装的很好,利用简单的几行代码就能完成很炫酷的动画效果。由于目前正在玩儿iOS动画的内容,利用iOS的CAEmitterLayer结合CAEmitterCell能够达这些效果。不BB了,先上几个效果图。代码已传githubEmitterAnimation

 
红包雨
 
点赞效果

马丹 有没有办法一次性放很多个gif呀。。。。。。。


CAEmitterLayerCAEmitterCell

CAEmitterLayerCALayer的一个常用子类,CALayer的子类有很多,如果能很好的使用它们会得到一些意想不到的效果。CAEmitterLayer就是其中之一,CAEmitterLayer是用于实现基于Core Animation的粒子发生器系统。

 
`CALayer`的常用子类

所谓粒子,就是很多小颗粒,当让QQ空间的点赞动画的粒子也可以不用CAEmitterLayer粒子发生器来实现,不过这样会麻烦很多。在粒子系统中,CAEmitterLayer是用来发射粒子的,他所发射的粒子就是CAEmitterCell(当然粒子也可以发射粒子,也就是CAEmitterCell也可以发射CAEmitterCell)。可以认为CAEmitterLayerCAEmitterCell的工厂,通过不同的设置就会不断的产生想要的粒子。

原理其实很简单,但是动画就是这样,需要花时间去理解属性,只有很好的用它的属性,才能达到很炫酷的效果。查看API会发现CAEmitterLayerCAEmitterCell的属性都是很多的,并且有很多相同的属性。在CAEmitterLayer中,一些属性决定了粒子从什么样的几何特性上发射出来,这个几何特性包括了位置,形状,大小,并且还有一些渲染属性,用于一些渲染的效果。另外一些属性CAEmitterLayerCAEmitterCell都有的,在这里可能会迷糊,但是API说明的很清楚,CAEmitterLayer的这些属性会作为CAEmitterCell相同属性的系数,举个

最新文章

  1. Native与H5交互的一些解决方法
  2. Linux下提示 bash: xxx command not found
  3. setAttribute,,,getAttribute,,,,
  4. jqurey 中dialog未定义问题
  5. 创建,增加,删除mysql表分区
  6. datagrid url json
  7. cocos2dx下最大纹理大小取决于平台
  8. Winform中修改WebBrowser控件User-Agent的方法(已经测试成功)
  9. jQuery的MP3、视频播放器jPlayer
  10. CTS/GTS 常见问题解答
  11. 逻辑卷lvm创建、扩展、缩小
  12. Java数据结构和算法(十四)——堆
  13. react-native-image-picker 运用launchCamera直接调取摄像头的缺陷及修复
  14. Shell 自动化部署免密登录
  15. javascript基础 之 代码规范
  16. MySQL官方教程及各平台的安装教程和配置详解入口
  17. NOIP2017逛公园(dp+最短路)
  18. CH 1402 - 后缀数组 - [字符串hash]
  19. matlab入门笔记(七):数据文件I/O
  20. Linux下Nagios的安装与配置 及遇到的坑

热门文章

  1. Java 高级面试知识点汇总!
  2. CSDN的验证码,为什么要这样呢
  3. 基于Swagger+SpringBoot快速构建javaweb项目
  4. 【学术篇】luogu2778 [AHOI2016初中组]迷宫(代码高能!)
  5. 【学术篇】oj.jzxx.net2701 无根树
  6. ArrayList去除重复元素(多种方法实现)
  7. maven相互依赖导致无法编译成功
  8. sql.xml where ids in的写法
  9. 图片转成base64 跨域等安全限制及解决方案
  10. 懒散惯了,该收收心了,两天了,封装了一个R0下注册表类