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也可以发射CAEmitterCell)。可以认为CAEmitterLayer是CAEmitterCell的工厂,通过不同的设置就会不断的产生想要的粒子。
原理其实很简单,但是动画就是这样,需要花时间去理解属性,只有很好的用它的属性,才能达到很炫酷的效果。查看API会发现CAEmitterLayer和CAEmitterCell的属性都是很多的,并且有很多相同的属性。在CAEmitterLayer中,一些属性决定了粒子从什么样的几何特性上发射出来,这个几何特性包括了位置,形状,大小,并且还有一些渲染属性,用于一些渲染的效果。另外一些属性CAEmitterLayer和CAEmitterCell都有的,在这里可能会迷糊,但是API说明的很清楚,CAEmitterLayer的这些属性会作为CAEmitterCell相同属性的系数,举个
iOS CALayer之CAEmitterLayer粒子发射器的神奇效果的更多相关文章
- iOS 烟花撒花效果,图层渐变,图层倒影特效。CAEmitterLayer粒子发射器
iOS 烟花撒花效果,图层渐变,图层倒影特效.CAEmitterLayer粒子发射器 上一节我写了一个关于视图图层的相关类,有关CALayer这个类的使用和一些使用方法,详细看这里,就是我们在处理视图 ...
- CAEmitterLayer 粒子发射器
在iOS 5中,苹果引入了一个新的CALayer子类叫做CAEmitterLayer.CAEmitterLayer是一个高性能的粒子引擎,被用来创建实时例子动画如:烟雾,火,雨等等这些效果. CAEm ...
- iOS之CAEmitterLayer粒子引擎
1.CAEmitterCell粒子发射器的相关属性: /* CoreAnimation - CAEmitterLayer.h Copyright (c) 2007-2017, Apple Inc. A ...
- SpriteBuilder中粒子发射器的reset on visibility toggle选项解释
如果选中该选择框,表示粒子发射器将删除所有已存在的粒子当它们的可见状态被代码改变的时候. 如果该选择框没有选中,则发射器将保持产生粒子但不渲染它们(意思是有但你看不到)当它们的可视状态为NO的时候. ...
- CAEmitterLayer 粒子效果(发射器)
//创建Layer CAEmitterLayer *emitterLayer = [CAEmitterLayer layer]; //边框 emitterLayer.borderWidth = 1.0 ...
- 雪花降落CAEmitterLayer粒子效果
CAEmitterLayer 实现雪花效果 首先需要导入#import <QuartzCore/QuartzCore.h> /**在iOS 5中,苹果引入了一个新的CALayer子 ...
- iOS CALayer应用详解
跟着大神一起进步,本篇博客原文地址:http://blog.csdn.net/hello_hwc?viewmode=contents 一 CALayer是什么? Layers是绘图和动画的基础, L ...
- CAEmitterLayer 粒子发射Layer的相关属性
emitterCells:CAEmitterCell对象的数组,被用于把粒子投放到layer上 birthRate:可以通俗的理解为发射源的个数,默认1.0.当前每秒产生的真实粒子数为=CAEmitt ...
- IOS CALayer(二)
UIview内部有个默认的CALayer对象层,虽然我门不可以重新创建它,但是我门可以再其上面添加子层. 我们知道,UIView有 addSubview:方法,同样,CALayer也有addSubla ...
随机推荐
- 新增加的html里的标签元素,该元素作为事件,js获取不到id的问题
if(flag==0){ var p = document.createElement("p"); var text ...
- php 取某一日期的前一天
代码为: $date = “2009-01-01”;$time = strtotime($date) – 3600*24;echo date(‘Y-m-d’,$time); 或者一句:echo dat ...
- 16.ajax_case07
# 通过搜索接口抓取etherscan上的合约地址 # https://etherscan.io/ import requests import re header = { 'Accept': 'te ...
- Java核心-03 谈谈final、finally、 finalize有什么不同?
今天,我要问你的是一个经典的 Java 基础题目,谈谈 final.finally. finalize 有什么不同? 典型回答 final 可以用来修饰类.方法.变量,分别有不同地意义,final修饰 ...
- CSDN的验证码,真得很糟糕
这是以三种不同的高度来分割各字符 第一张图片是以宽度3来分割,可以看得出,验证码元素保存完好,但 Y 和 9 仍然连在一起 第二张图片是以宽度4来分割,看到了,N已经断了,肉眼虽然仍看得出来是N,但是 ...
- java_List接口
/** * java.util.list接口 extends Collection接口 * 1.有序的集合 * 2.有索引 * 3.元素可以重复 * * List中带索引的方法: *add:添加 * ...
- select 语句中 if 的用法
IF( expr1 , expr2 , expr3 ) expr1 的值为 TRUE,则返回值为 expr2 expr1 的值为FALSE,则返回值为 expr3 例: ,); ,); ", ...
- 杂项-公司:Google
ylbtech-杂项-公司:Google 谷歌公司(Google Inc.)成立于1998年9月4日,由拉里·佩奇和谢尔盖·布林共同创建,被公认为全球最大的搜索引擎公司.谷歌是一家位于美国的跨国科技企 ...
- PAT甲级——A1102 Invert a Binary Tree
The following is from Max Howell @twitter: Google: 90% of our engineers use the software you wrote ( ...
- C/C++基础:main函数的参数argc和argv
转载: https://blog.csdn.net/Eastmount/article/details/20413773 一.main()函数参数 通常我们在写主函数时都是void main()或in ...