前言: CAEmitterLayer是QuartzCore提供的粒子引擎, 可用于制作美观的粒子特效。 1、创建发射器emitter //设置layer的frame CAEmitterLayer *emitter = [[CAEmitterLayer alloc]init]; CGRect frame = 注: 还有更多的发射器形状,cuboid, circle and sphere,这些请参阅苹果文档中的CAEmitterLayer类参考资料,了解更多信息。 它是CAEmitterLayer的一个单独的类,因为一个发射器层可以包含一个或多个单元。
iOS中有一些特殊的layer,也可以做一些动画效果,本文就补充两个可以做动画效果的layer: CAEmitterLayer 和 CAReplicatorLayer。 CAEmitterLayer Emitter 发射器,因为可以用它来做爆炸、发射、下雪等效果。 比如,这个下雪效果: ? 下雪.gif - (void)setEmitter { CAEmitterLayer *snowEmitter = [CAEmitterLayer layer]; //发射点的位置 喷射.gif 主要代码: - (void)setEmitter { CAEmitterLayer *snowEmitter = [CAEmitterLayer layer]; //发射点的位置 烟花.gif - (void)fireworks { CAEmitterLayer *emitter = [CAEmitterLayer layer]; emitter.frame =
CAEmitterLayer *emitter = [CAEmitterLayer layer]; emitter.frame = self.view.bounds; [self.view.layer
今天主要通过实现一个音乐播放状态的展示条,还有一个点赞的动画效果,来看看 CAReplicatorLayer、CAEmitterLayer和CAGradientLayer这三个专用层。 CAEmitterLayer CAEmitterLayer是一个高性能的粒子引擎,被用来创建实时例子动画如:烟雾,火,雨等等这些效果。 CAEmitterLayer看上去像是许多CAEmitterCell的容器,这些CAEmitierCell定义了一个例子效果。 通俗点说,例如雨是由很多小雨点组成的。 每个小雨点就是 CAEmitterCell,CAEmitterLayer用来控制这些小雨点。我们不用太关心cell的创建和销毁,只要设置好参数,系统会帮助我们完成这些工作。 2.6 CAEmitterLayer的属性 基本上该用的属性这个粒子里面都用到了,唯一以后需要查手册的就是下面这些枚举。
QuartzCore.CAEmitterCell /// 粒子动画 https://www.jianshu.com/p/9fa8bc02117c import QuartzCore.CAEmitterLayer CAEmitterLayer 粒子动画 ---- 拿其中的这个我们写一个简单的粒子动画,在QuartzCore里面别的Layer应该是使用的比较多的,比如像 CAGradientLayer、 CAReplicatorLayer、CAShapeLayer这几个我们平常还是在使用的,但这个CAEmitterLayer我还真的见得比较少,然后就看了一下它的一些具体的使用,总结写了一个动画,动画的效果如下图所示 imageView.addGestureRecognizer(tap) return imageView }() lazy var emitterLayer: CAEmitterLayer = { let emitterLayer = CAEmitterLayer() /// 设置发射源的形状 emitterLayer.emitterShape
GIF的,但是GIF倒出的时候,一些细节的圆角失真,变成了方形,没办法,只能代码写,下面是粒子的一些基本属性,看网上把粒子发射器比作大炮,觉得比喻的非常合理,每行都有注释,一大炮结构为详解,应该很清楚 CAEmitterLayer 可理解为大炮 ,下面是设置大炮的一些属性 self.fireEmitter = [CAEmitterLayer layer]; //创建一个大炮 self.fireEmitter.emitterPosition
先上效果图: CALayer系列.gif CGContextRef、UIBezierPath、文本属性Attributes.gif 一、CAEmitterLayer 粒子属性 //设置发射器 CAEmitterLayer * _snowEmitter=[[CAEmitterLayer alloc]init]; //发射器在xy平面的中心位置 _snowEmitter.emitterPosition=CGPointMake
QuartzCore.CAEAGLLayer // OpenGL ES 绘图 图层 import QuartzCore.CAEmitterCell // 粒子特效 Cell import QuartzCore.CAEmitterLayer 组动画等) 提供了几何变换接口,是对CoreGraphics的CGAffineTransform进一步封装 封装了CALayer,它是使视图呈现出来的基础类 封装了一些特殊用途的图层Layer(如粒子特效CAEmitterLayer
粒子发射器是基于Layer层,没错,又是Layer,他的全名叫做: CAEmitterLayer。 contentsRect; 渲染的范围 三、让我们来“火”一把 通过上面的介绍,我们来应用这些创造一团火,代码示例如下: @interface ViewController () { CAEmitterLayer self.view.backgroundColor=[UIColor blackColor]; //设置发射器 _fireEmitter=[[CAEmitterLayer alloc]init
当然,老司机写这篇博客之前也是自己查阅了很多资料的,你大可以不用担心我瞎逼逼╮(╯_╰)╭ 一脸懵逼 在今天的博客里,你可以看到以下内容: CAEmitterLayer CATiledLayer 异步绘制 ---- CAEmitterLayer CAEmitter的解决粒子发射而存在的类,你问什么是粒子发射,look。 CAEmitterLayer *emitter = [CAEmitterLayer layer]; emitter.frame = self.bgView.bounds; self.bgView.backgroundColor emitter.emitterCells = @[cell]; 所以说用法还是很简单的,所有属性不同的组合能有一些不错的效果,老司机也就不一一展示了,我的demo里面会抽出几个属性让你能很方便的更改以更快的熟悉CAEmitterLayer 你猜我笑啥 ---- 参考资料 iOS粒子系统CAEmitterLayer 研究了一下CATiledLayer的levelsOfDetail和levelsOfDetailBias的含义 使用 ASDK
IOS粒子效果 系统自带的粒子效果实现主要的类是:CAEmitterBehavior、CAEmitterLayer、CAEmitterCell他们的作用分别是,定义粒子发射机的行为、设置发射机的特征、设置粒子的具体特效 tspark"]; CGImageRef img = [image CGImageForProposedRect:nil context:nil hints:nil]; mortor = [CAEmitterLayer
CAEmitterLayer @J_Knight_:本文作者 Mattt 介绍了 CAEmitterLayer 的使用方法,并结合代码展示了如何使用 CAEmitterLayer 和 CAEmitterCell
iOS开发CoreAnimation解读之三——几种常用Layer的使用解析 一、CAEmitterLayer CAEmitterLayer是CoreAnimation框架中的粒子发射层
** Layer支持继承,支持添加Sublayer,支持对sublayer进行层次调整** 常用的Layer子类 CAEmitterLayer 发射器层,用来控制粒子效果 CAGradientLayer
二、几种系统的Layer类 前边说过,和UIView相似,CALayer也很据功能衍生出许多子类,系统系统给我们可以使用的有如下几种: 1.CAEmitterLayer CoreAnimation 框架中的CAEmitterLayer是一个粒子发射器系统,负责粒子的创建和发射源属性。
CAAnimationGroup(动画组) CoreAnimation 之 CATransition(转场动画)以及动画的暂停和恢复 其实,除了上面提到的相关动画,还有一个动画相关的类是有必要跟大家提一下的,那就是CAEmitterLayer
2、CAEmitterLayer:主要控制发射源的位置、尺寸、发射模式、发射源的形状等等。 以上两个类的属性还是比较多的,这里就不细讲了。大家可以google一下,详细的了解吧。
1.12.7 CAEmitterLayer 在iOS 5中,苹果引入了一个新的CALayer子类叫做CAEmitterLayer。 CAEmitterLayer是一个高性能的粒子引擎,被用来创建实时例子动画如:烟雾,火,雨等等这些效果。 CAEmitterLayer看上去像是许多CAEmitterCell的容器,这些CAEmitierCell定义了一个例子效果。 你将会为不同的例子效果定义一个或多个CAEmitterCell作为模版,同时CAEmitterLayer负责基于这些模版实例化一个粒子流。 CAEmitterLayer的属性它自己控制着整个例子系统的位置和形状。一些属性比如birthRate,lifetime和celocity,这些属性在CAEmitterCell中也有。
CATransformLayer 6.4 CAGradientLayer 6.5 CAReplicatorLayer 6.6 CAScrollLayer 6.7 CATiledLayer 6.8 CAEmitterLayer 重复图层(Repeating Layers) 第6篇:CAScrollLayer 第7篇:CATiledLayer 第8篇:CAEmitterLayer 第9篇:CAEAGLLayer 第10篇:AVPlayerLayer 总结: 这一章我们简要概述了一些专用图层以及用他们实现的一些效果,我们只是了解到这些图层的皮毛,像CATiledLayer和CAEMitterLayer这些类可以单独写一章的。 这一章我们通过CAEmitterLayer和AVPlayerLayer类简单地接触到了一些动画,在第二章,我们将继续深入研究动画,就从隐式动画开始。
AVPlayerLayer,CAGradientLayer,CAReplicatorLayer,CATiledLayer,CAShapeLayer,CAEAGLLayer,CATransformLayer,CAEmitterLayer