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相同属性的系数,举个

iOS CALayer之CAEmitterLayer粒子发射器的神奇效果的更多相关文章

  1. iOS 烟花撒花效果,图层渐变,图层倒影特效。CAEmitterLayer粒子发射器

    iOS 烟花撒花效果,图层渐变,图层倒影特效.CAEmitterLayer粒子发射器 上一节我写了一个关于视图图层的相关类,有关CALayer这个类的使用和一些使用方法,详细看这里,就是我们在处理视图 ...

  2. CAEmitterLayer 粒子发射器

    在iOS 5中,苹果引入了一个新的CALayer子类叫做CAEmitterLayer.CAEmitterLayer是一个高性能的粒子引擎,被用来创建实时例子动画如:烟雾,火,雨等等这些效果. CAEm ...

  3. iOS之CAEmitterLayer粒子引擎

    1.CAEmitterCell粒子发射器的相关属性: /* CoreAnimation - CAEmitterLayer.h Copyright (c) 2007-2017, Apple Inc. A ...

  4. SpriteBuilder中粒子发射器的reset on visibility toggle选项解释

    如果选中该选择框,表示粒子发射器将删除所有已存在的粒子当它们的可见状态被代码改变的时候. 如果该选择框没有选中,则发射器将保持产生粒子但不渲染它们(意思是有但你看不到)当它们的可视状态为NO的时候. ...

  5. CAEmitterLayer 粒子效果(发射器)

    //创建Layer CAEmitterLayer *emitterLayer = [CAEmitterLayer layer]; //边框 emitterLayer.borderWidth = 1.0 ...

  6. 雪花降落CAEmitterLayer粒子效果

    CAEmitterLayer 实现雪花效果   首先需要导入#import <QuartzCore/QuartzCore.h>   /**在iOS 5中,苹果引入了一个新的CALayer子 ...

  7. iOS CALayer应用详解

    跟着大神一起进步,本篇博客原文地址:http://blog.csdn.net/hello_hwc?viewmode=contents 一 CALayer是什么? Layers是绘图和动画的基础,  L ...

  8. CAEmitterLayer 粒子发射Layer的相关属性

    emitterCells:CAEmitterCell对象的数组,被用于把粒子投放到layer上 birthRate:可以通俗的理解为发射源的个数,默认1.0.当前每秒产生的真实粒子数为=CAEmitt ...

  9. IOS CALayer(二)

    UIview内部有个默认的CALayer对象层,虽然我门不可以重新创建它,但是我门可以再其上面添加子层. 我们知道,UIView有 addSubview:方法,同样,CALayer也有addSubla ...

随机推荐

  1. 《DSP using MATLAB》Problem 8.38

    代码: function [wpLP, wsLP, alpha] = bp2lpfre(wpbp, wsbp) % Band-edge frequency conversion from bandpa ...

  2. 锐速与BBR的原理简单解析

    锐速与BBR的原理简单解析  4 前言 昨天,有一位朋友在我的文章下留言说,锐速和BBR不都是一样,是拥塞算法嘛.因为这方面需要讲的东西比较多,所以我还是专门水一篇文章吧. 锐速 参考资料: http ...

  3. 确认(confirm 消息对话框)语法:confirm(str); 消息对话框通常用于允许用户做选择的动作,如:“你对吗?”等。弹出对话框(包括一个确定按钮和一个取消按钮)

    确认(confirm 消息对话框) confirm 消息对话框通常用于允许用户做选择的动作,如:"你对吗?"等.弹出对话框(包括一个确定按钮和一个取消按钮). 语法: confir ...

  4. C++ 系列:C++ 内存布局

    1 前言 了解你所使用的编程语言究竟是如何实现的,对于C++程序员可能特别有意义.首先,它可以去除我们对于所使用语言的神秘感,使我们不至于对于编译器干的活感到完全不可思议:尤其重要的是,它使我们在De ...

  5. Java驼峰和下划线互相转化

    直接上代码 : package com.utils; public class ChangeChar { public static final char UNDERLINE = '_'; publi ...

  6. Element-ui之修改样式

    修改样式的方法 官网上面介绍了几种方法: 当然还有其他的方法,比如: 直接在标签上面采用行内式: 在组件中的style里面添加样式: 引入.scss文件(注意:如果是公用样式最好在index.scss ...

  7. LUOGU P2580 于是他错误的点名开始了(trie树)

    传送门 解题思路 trie树模板

  8. php中的线程、进程和并发区别

    https://mp.weixin.qq.com/s/Ps5w13TTmpnZx-RPWbsl1A 进程 进程是什么?进程是正在执行的程序:进程是正在计算机上执行的程序实例:进程是能分配给处理器并由处 ...

  9. 101 删除排序数组中的重复数字 II

    原题网址:http://www.lintcode.com/zh-cn/problem/remove-duplicates-from-sorted-array-ii/# 跟进“删除重复数字”: 如果可以 ...

  10. NYOJ--311(完全背包)

    题目:http://acm.nyist.net/JudgeOnline/problem.php?pid=311 分析:这里就是一个完全背包,需要注意的就是初始化和最后的输出情况        dp[j ...