CAEmitterLayer,粒子发射系统

ios 基于CAEmitterLayer的雪花,烟花,火焰,爱心等效果demo demo功能:基于CAEmitterLayer的雪花,烟花,火焰,爱心等效果。 demo说明:基于Core Animation的粒子发射系统,粒子用CAEmitterCell来初始化。 粒子画在背景层盒边界上 demo截屏: demo代码说明: emitterPosition:发射位置 emitterSize:发射源的大小; emitterMode:发射模式 阅读详情

#import "DGExplodeAnimationView.h"

#import <QuartzCore/QuartzCore.h>


@interface DGExplodeAnimationView()


@property (nonatomic, strong) CAEmitterLayer *emitterLayer;


@end


@implementation DGExplodeAnimationView



#pragma mark - Initial Function

- (void) StartUp {

    self.clipsToBounds = NO;

    self.userInteractionEnabled = NO;

    

    CAEmitterCell *emitter = [CAEmitterCell emitterCell];

    

    emitter.contents                = (id)[UIImage imageNamed: @"Like-Sparkle"].CGImage;

    emitter.color = [UIColor cyanColor].CGColor;

    emitter.name                    = @"explosion";

    emitter.alphaRange              = 0.2f;

    emitter.alphaSpeed              = -1.f;

    emitter.lifetime                = 0.7f;

    emitter.lifetimeRange           = 0.3f;

    emitter.birthRate               = 0;

    emitter.velocity                = 40.0f;

    emitter.velocityRange           = 10.0f;

    emitter.emissionRange           = M_PI_4;

    emitter.scale                   = 0.05f;

    emitter.scaleRange              = 0.02;

    

    _emitterLayer = [CAEmitterLayer layer];

    _emitterLayer.name              = @"emitterLayer";

    _emitterLayer.emitterShape      = kCAEmitterLayerCircle;

    _emitterLayer.emitterMode       = kCAEmitterLayerOutline;

    _emitterLayer.emitterPosition   = self.center;

    _emitterLayer.emitterSize       = CGSizeMake(25, 0);

    _emitterLayer.renderMode        = kCAEmitterLayerOldestFirst;

    _emitterLayer.masksToBounds     = NO;

    _emitterLayer.emitterCells      = @[emitter];

    _emitterLayer.frame             = [UIScreen mainScreen].bounds;

    

    [self.layer addSublayer: _emitterLayer];

    

    

    _emitterLayer.emitterPosition   = self.center;

}


#pragma mark - Overide

- (void) layoutSubviews {

    [super layoutSubviews];

    [self StartUp];

}


#pragma mark - Methods

- (void) animate {

    dispatch_time_t delay = dispatch_time(DISPATCH_TIME_NOW, 0.2 * NSEC_PER_SEC);

    dispatch_after(delay, dispatch_get_main_queue(), ^{

        self.emitterLayer.beginTime = CACurrentMediaTime();

        CABasicAnimation *ani = [CABasicAnimation animationWithKeyPath: @"emitterCells.explosion.birthRate"];

        ani.fromValue = @0;

        ani.toValue = @500;

        [_emitterLayer addAnimation: ani forKey: nil];

    });

}








基于CAEmitterLayer做的点赞效果图: 
效果图

CAEmitterCell

CAEmitterCell: CAEmitterCell是粒子发射系统里的粒子,用CAEmitterCell来定义你所需要的粒子的样式,图片,颜色,方向,运动,缩放比例和生命周期等等。

  • 属性列表
属性名 作用
alphaRange 一个粒子的颜色alpha能改变的范围
alphaSpeed 粒子透明度在生命周期内的改变速度
birthrate 每秒发射的粒子数量
blueRange 一个粒子的颜色blue 能改变的范围
blueSpeed 粒子blue在生命周期内的改变速度
color 粒子的颜色
contents 是个CGImageRef的对象,既粒子要展现的图片
contentsRect 应该画在contents里的子rectangle
emissionLatitude 发射的z轴方向的角度
emissionLongitude x-y平面的发射方向
emissionRange 周围发射角度
emitterCells 粒子发射的粒子的数组
enabled 粒子是否被渲染
greenrange 一个粒子的颜色green 能改变的范围
greenSpeed 粒子green在生命周期内的改变速度
lifetime 生命周期
lifetimeRange 生命周期范围 lifetime= lifetime(+/-) lifetimeRange
magnificationFilter 增加自己的大小
minificatonFilter 减小自己的大小
minificationFilterBias 减小大小的因子
name 粒子的名字
redRange 一个粒子的颜色red 能改变的范围
redSpeed 粒子red在生命周期内的改变速度
scale 缩放比例
scaleRange 缩放比例范围
scaleSpeed 缩放比例速度
spin 子旋转角度
spinrange 子旋转角度范围
velocity 速度
velocityRange 速度范围
xAcceleration 粒子x方向的加速度分量
yAcceleration 粒子y方向的加速度分量
zAcceleration 粒子z方向的加速度分量

- 代码示例

<code class="language-swift hljs avrasm has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial;">let explosionCell           = CAEmitterCell()
explosionCell<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.name</span>          = <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"explosion"</span>
explosionCell<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.alphaRange</span>    = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0.10</span>
explosionCell<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.alphaSpeed</span>    = -<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.0</span>
explosionCell<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.lifetime</span>      = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0.7</span>
explosionCell<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.lifetimeRange</span> = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0.3</span>
explosionCell<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.birthRate</span>     = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>
explosionCell<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.velocity</span>      = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">40.00</span>
explosionCell<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.velocityRange</span> = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">10.00</span>
explosionCell<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.scale</span>         = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0.03</span>
explosionCell<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.scaleRange</span>    = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0.02</span>
explosionCell<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.contents</span>      = UIImage(named: <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"Sparkle"</span>)?<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.CGImage</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li></ul>

CAEmitterLayer

CAEmitterLayer :CAEmitterLayer类提供了一个粒子发射器系统为核心的动画。这些粒子是由CAEmitterCell组成的实例,它相当于一个管理者,来管理 CAEmitterCell的发射的一些细节,比如发射的位置,发射形状等等。

  • 属性列表
属性名 做用
emitterPosition 发射位置
emitterSize 发射源的大小
emitterMode 发射模式
emitterShape 发射源的形状
renderMode 渲染模式
birthRate 粒子产生系数,默认1.0
emitterCells 装着CAEmitterCell对象的数组,被用于把粒子投放到layer上
emitterDepth 决定粒子形状的深度联系
emitterZposition 发射源的z坐标位置
lifetime 粒子生命周期
scale 粒子的缩放比例
seed 用于初始化随机数产生的种子
spin 自旋转速度
velocity 粒子速度
  • 代码示例
<code class="hljs avrasm has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial;">explosionLayer = CAEmitterLayer()
explosionLayer<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.name</span>          = <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"emitterLayer"</span>
explosionLayer<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.emitterShape</span>  = kCAEmitterLayerCircle<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">;</span>
explosionLayer<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.emitterMode</span>   = kCAEmitterLayerOutline<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">;</span>
explosionLayer<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.emitterSize</span>   = CGSizeMake(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">10</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>)<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">;</span>
explosionLayer<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.emitterCells</span>  = [explosionCell]
explosionLayer<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.renderMode</span>    = kCAEmitterLayerOldestFirst<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">;</span>
explosionLayer<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.masksToBounds</span> = false
explosionLayer<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.position</span>      = CGPointMake(self<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.frame</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.size</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.width</span>/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2.0</span>, self<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.frame</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.size</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.height</span>/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2.0</span>)<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">;</span>
explosionLayer<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.zPosition</span>     = -<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">;</span>
layer<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.addSublayer</span>(explosionLayer)</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li></ul>

iOS CAEmitterLayer实现粒子发射动画效果 主要为大家详细介绍了iOS CAEmitterLayer 实现粒子发射动画效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 立即下载

相关推荐

IOS 粒子系统 (CAEmitterLayer)实例详解

一、系统剖析 在UIKit中,粒子系统由两部分组成: ·      一个或多个CAEmitterCells:发射器电池可以看作是单个粒子的原型(例如,一个单一的粉扑在一团烟雾)。当散发出一个粒子,UIKit根据这个发射粒子和定义的基础上创建一个随机粒子。此原型包括一些属性来控制粒子的图片,颜色,方向,运动,缩放比例和生命周期。 ·      一个或多个CAEmitterLayers,但通常只有一个:这个发射的层主要控制粒子的形状(例如,一个点,矩形或圆形)和发射的位置(例如,在矩形内,或边缘)。这个层具有全局的乘法器,可以施加到系统内的CAEmitterCells。这些给你一个简单的方法覆

CALayer之CAEmitterLayer粒子发射器

先发一下CAEmitterLayer做成的demon效果:  likesnow看过GIF图之后大家应该对CAEmitterLayer充满了好奇,这些该如何实现呢,各位莫慌,只要你耐心看下去,实现这些效果都是小 case。 CAEmitterLayer与CAEmitterCell简介 CAEmitterLayer(粒子发射器)继承自CALayer,是CALayer众多子类中的一个,提供了一个基...

qq_34003239的博客 730

Retinanet训练自己的数据(2):模型准备

  在上一篇博客中,我们已经处理好了模型需要的数据集,下一步就是准备模型去训练数据。这里提醒一句,在制作数据时,最好将训练集和测试集人为分开。像Google tensorflow API,在制作数据时可以按比例自动生成,但是在上一篇文章中产生的数据(annotation.csv )其实都是用来训练的,如果你把自己的数据集全都转换了,那么恭喜你,最后你会发现没有数据集去测试了。   下面开始模型准...

mingyang_wang的博客 5884

CAEmitterLayer 详解

原文地址:http://www.jianshu.com/p/df878cef6795    http://www.jianshu.com/p/197c2257f597 今天呢我们来看下CAEmitterLayer(粒子发生器)的使用 ==================================== 一、CAEmitterLayer 粒子发生器 1、CAEmitter

Secret Island 2469

强化学习-----DQN(Deep Q-network)

DQN(Deep Q-Network)是一种基于深度学习和强化学习的算法,由DeepMind提出,用于解决离散动作空间下的马尔科夫决策过程(MDP)问题。它是首个成功将深度学习应用于解决强化学习任务的算法之一。DQN,即深度Q网络(Deep Q-network),是指基于深度学习的Q-Learing算法。那什么是Q-leaning?可以看上一篇文章Q-learning是一种经典的强化学习算法,用于解决马尔可夫决策过程(Markov Decision Process,MDP)中的控制问题。

qq_74722169的博客 2万+

DSP28335量产升级避坑指南:C2Prog串口烧录.hex文件,为什么我推荐COM1?

本文详细解析了DSP28335量产升级中C2Prog串口烧录.hex文件的最佳实践,重点推荐使用COM1端口以确保稳定性。通过实测数据和底层机制分析,揭示了Windows系统对COM1的特殊优化及C2Prog工具的时钟切换逻辑,帮助开发者规避常见陷阱,提升烧录成功率。

weixin_27066963的博客 384

iOS CAEmitterLayer简介,基于CAEmitterLayer实现粒子效果 —— HERO博客

基于CAEmitterLayer实现粒子效果,音符弹出、花瓣飘落、太阳散射。

hero_wqb的博客 4360

tanner2019安装教程

tanner2019安装教程 tanner安装包 软件由老师提供,但由于老师给的方法不知怎么回事无法使用就自己找了一些方法,本教程仅提供参考 链接:https://pan.baidu.com/s/1A2O6JuEF8YFbe8bPnD3J6w 提取码:ysif 复制这段内容后打开百度网盘手机App,操作更方便哦 安装过程 1.选择TannerTools_v2019.2-Win64.exe,进行安装。 2.选择安装产品 3.选择目标路径 4.确认安装 5.安装成功,退出。 获取许可过程 1.打开key压缩

weixin_47730560的博客 1万+

iOS CAEmitterLayer动画

1. CAEmitterLayer CAEmitterLayer是一个高性能的粒子引擎,被用来创建复杂的粒子发射动画,而所谓的粒子就是CAEmitterCell。可以把CAEmitterLayer看做CAEmitterCell的容器,CAEmitterCell可以进行个性化定制。 CAEmitterLayer主要属性 // 粒子数组 @property(nullable, copy) NSArray<CAEmitterCell *> *emitterCells; // 发射源中心点位置,默认是

假装你是大灰狼的专栏 1503

别再手动上传了!用宝塔面板的‘Let‘s Encrypt’免费SSL证书,3分钟自动续期

本文详细介绍了如何利用宝塔面板的‘Let‘s Encrypt’功能实现SSL证书的自动申请和续期,3分钟完成配置即可永久免费使用。通过对比不同SSL证书方案,突出Let's Encrypt的免费、自动续期和高安全性优势,特别适合个人博客和中小企业官网。

weixin_30415113的博客 150

深圳SILAS(智能融合低空系统)无人机调度系统介绍

一、系统定位与核心目标SILAS(Smart Integrated Lower Airspace System)是深圳市为低空经济打造的“数字大脑”,由粤港澳大湾区数字经济研究院自主研发,定位为城市级低空飞行智能调度与管理平台。核心目标是解决低空经济中“高密度、高复杂度、多主体”的飞行调度难题,实现空域资源的高效分配、飞行安全的智能监管及全场景服务的无缝协同,支撑深圳从“无人机之都”向“天空之城”升级。二、核心架构:低空基础设施“四张网”设施网。

主攻大数据 人工智能 物联网 安全 低空经济等方向。mtsc 、gtest特邀分享嘉宾 3745

iOS-利用粒子发射器(CAEmitterLayer) 制作发射动画

CAEmitterLayer,是CALayer子类,自iOS 5.0以后推出,是一个高性能的粒子引擎,被用来创建实时粒子动画; CAEmitterCell,类似于一个CALayer,自带一个contents属性,用于设定CGImage图像; CAEmitterLayer可以理解为是CAEmitterCell的容器,可以包含多种CAEmitterCell的cells;结果如下图: 粒子图片素材

Mazy's Blog 1511

物理信息神经网络(PINNs)在交通运输领域的应用

物理信息神经网络(PINNs)在交通运输领域的应用研究结合了数据驱动与物理模型约束,通过嵌入交通流守恒定律等物理信息,显著提升了交通状态估计与预测的精度。该技术仅需少量观测数据(流量、速度、密度等),即可实现高精度建模,尤其适用于数据稀疏场景。研究重点包括:交通状态估计与预测、参数辨识、交通控制优化等领域,同时面临计算成本高、物理模型依赖性等挑战。未来需解决大规模异构数据处理问题,以进一步推动智能交通系统发展。

qq_49609070的博客 944

粒子发射系统中的CAEmitterLayer

简介:CAEmitterLayer提供了一个基于Core Animation的粒子发射系统,粒子用CAEmitterCell来初始化。 粒子画在背景层盒边界上。但是CAEmitterLayer只支持IOS5及以上版本。   Properties:          birthRate:粒子产生系数,默认1.0;   emitterCells: 装着CAEmitt

SpeedBoy007的专栏 764

智能车学习日记【二】————十字和斜入十字

智能车学习日记【二】————十字和斜入十字 文章目录 智能车学习日记【二】————十字和斜入十字 前言 一、普通十字补线 二、斜入十字 1.判断是否为斜入十字和斜入十字类型 2.找斜入十字拐点 总结 前言 经过了一个多月的学习,小白的我终于也是能较稳定调出了2.8m以上的四轮车,过程中也遇到了很多困难,其中就有十字补线和斜入十字补线。尤其是斜入十字也是困扰了我快一周,现在和大家分享一下我处理斜入十字的方法(我的方法其实还有很多漏洞需要改进,仅供大家参考理解一下,欢迎各位在评论区指点出可

bsefef的博客 2740

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

CAEmitterLayer CAEmitterCell 一个基于Core Animation的粒子发射系统

简介:CAEmitterLayer提供了一个基于Core Animation的粒子发射系统,粒子用CAEmitterCell来初始化。粒子画在背景层盒边界上   Properties:          birthRate:粒子产生系数,默认1.0;   emitterCells: 装着CAEmitterCell对象的数组,被用于把粒子投放到layer上;   emitterDep

x32sky的专栏 753

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

CAEmitterLayer粒子发射系统

CAEmitterLayer 转载于:https://www.cnblogs.com/song-kl/p/4685816.html

administrator99999的博客 115

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

iOS开发进阶 - CAEmitterLayer,粒子发射系统

CAEmitterLayer是ios5中苹果引入了一个新的CALayer子类。CAEmitterLayer是一个高性能的粒子引擎,可以用来做一些绚丽的粒子系统,比如爆炸,雪花火焰等等。 基于CAEmitterLayer做的点赞效果图(demo的github下载地址(大家喜欢可以点个star)): CAEmitterCellCAEmitterCell: CAEmitterCell是粒子发射系统里的粒子

W_C__L的博客 5984

CAEmitterLayer CAEmitterCell

简介:CAEmitterLayer提供了一个基于Core Animation的粒子发射系统,粒子用CAEmitterCell来初始化。粒子画在背景层盒边界上   Properties:          birthRate:粒子产生系数,默认1.0;   emitterCells: 装着CAEmitterCell对象的数组,被用于把粒子投放到layer上;   emitterDep

hufeng825的专栏 6177

iOS CAEmitterLayer 实现粒子效果

demo功能:基于CAEmitterLayer的雪花,烟花,火焰,爱心等效果。 demo说明:基于Core Animation的粒子发射系统,粒子用CAEmitterCell来初始化。 粒子画在背景层盒边界上 demo截屏: demo代码说明: 在iOS 5中,苹果引入了一个新的CALayer子类叫做CAEmi

KnowingNow的专栏 671

学习动画总结 -- CAEmitterLayer(粒子系统)

CAEmitterLayer(粒子系统)

Obses_sion的博客 560

[转载]CAEmitterLayer

原文地址:CAEmitterLayer作者:文刀始问道         简介:CAEmitterLayer提供了一个基于Core Animation的粒子发射系统,粒子用CAEmitterCell来初始化。粒子画在背景层盒边界上   Properties:          birthRate:粒子产生系数,默认1.0;   emitterCell

Jacky Shin的专栏 975

iOS - CAEmitterLayer 学习笔记一

其他参考博客: http://my.oschina.net/u/2340880/blog/485095 http://www.cnblogs.com/YouXianMing/p/3785876.html CAEmitterLayer这个类是QuartzCore框架中针对CoreAnimation提供的一个粒子放射系统。这些粒子是由CAEmitterCell这个类进行实例化的。 一、Spec...

weixin_30256901的博客 141

iOS quartzCore第三章——CAEmitterLayer和CAEmitterCell详解

简介:CAEmitterLayer提供了一个基于Core Animation的粒子发射系统,粒子用CAEmitterCell来初始化。 粒子画在背景层盒边界上。 1、CAEmitterCell CAEmitterCell *effectCell = [CAEmitterCell emitterCell]; defauleValueForKey: 更具健获得值; emitt

ihoudf 1881

文章标题

demo功能:基于CAEmitterLayer的雪花,烟花,火焰,爱心等效果。demo说明:基于Core Animation的粒子发射系统,粒子用CAEmitterCell来初始化。 粒子画在背景层盒边界上demo截屏:1.pngdemo代码说明:emitterPosition:发射位置emitterSize:发射源的大小;emitterMode:发射模式NSString * const kCAEm

libin337472810的博客 421
上一篇: iOS开发笔记--使用blend改变图片颜色
下一篇: MVVM
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值