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

    介:CAEmitterLayer提供了一个基于Core Animation的粒子射系,粒子用CAEmitterCell来初始化。粒子画在背景界上。


1、CAEmitterCell

CAEmitterCell *effectCell = [CAEmitterCell emitterCell];

defauleValueForKey: 更具健

emitterCell:初始化方法

shouldArchiveValueForKey:是否档莫键值


effectCell 几个重要属性

1).birthRate  每秒某个点产生的effectCell数量。默认是0.

2).lifetime & lifetimeRange 表示effectCell的生命周期,既在屏幕上的显示时间要多长。

3).contents 这个和CALayer一样,只是用来设置图片

4).name 这个是当effectCell存在caeEmitter 的emitterCells中用来辨认的。用到setValue forKeyPath比较有用

5).velocity & velocityRange & emissionRange 表示cell向屏幕右边飞行的速度 & 在右边什么范围内飞行& +-角度扩散

6).把cell做成array放进caeEmitter.emitterCells里去。caeEmitter.renderMode有个效果很不错,能变成火的就是kCAEmitterLayerAdditive

所有属性::::::::::::::::::::::::::::::::

name:粒子的名字

enabled:粒子是否被渲染

birthrate:粒子参数的速度乘数因子;

lifetime:生命周期

lifetimeRange:生命周期范围

emissionLatitude:发射的z轴方向的角度

emissionLongitude:x-y平面的发射方向

emissionRange;周围发射角度

velocity:速度

velocityRange:速度范围

xAcceleration:粒子x方向的加速度分量

yAcceleration:粒子y方向的加速度分量

zAcceleration:粒子z方向的加速度分量

scale:缩放比例:

scaleRange:缩放比例范围;

scaleSpeed:缩放比例速度:

spin:子旋转角度

spinrange:子旋转角度范围

color:粒子的颜色

redRange:一个粒子的颜色red 能改变的范围;

greenrange: 一个粒子的颜色green 能改变的范围;

blueRange:一个粒子的颜色blue 能改变的范围;

alphaRange:  一个粒子的颜色alpha能改变的范围;

redSpeed; 粒子red在生命周期内的改变速度;

greenSpeed: 粒子green在生命周期内的改变速度;

blueSpeed: 粒子blue在生命周期内的改变速度;

alphaSpeed:粒子透明度在生命周期内的改变速度;

contents:是个CGImageRef的对象,既粒子要展现的图片;

contentsRect:应该画在contents里的子rectangle:

contentsScale

magnificationFilter:不是很清楚好像增加自己的大小

minificatonFilter:减小自己的大小

minificationFilterBias:减小大小的因子

emitterCells:粒子发射的粒子

style:


2、CAEmitterLayer

所有属性::::::::::::::::::::::::::::::::  

birthRate:粒子生系数,默1.0

emitterCells: 装着CAEmitterCell象的数,被用于把粒子投放到layer上;

emitterDepth:决定粒子形状的深度系:emittershape

emitterMode:射模式

NSString * const kCAEmitterLayerPoints;

NSString * const kCAEmitterLayerOutline;

NSString * const kCAEmitterLayerSurface;

NSString * const kCAEmitterLayerVolume;


emitterPosition:射位置

emitterShape:射源的形状:

NSString * const kCAEmitterLayerPoint;

NSString * const kCAEmitterLayerLine;

NSString * const kCAEmitterLayerRectangle;

NSString * const kCAEmitterLayerCuboid;

NSString * const kCAEmitterLayerCircle;

NSString * const kCAEmitterLayerSphere;


emitterSize:射源的尺寸大;

emitterZposition:射源的z位置;

lifetime:粒子生命周期

preservesDepth:不是多很清楚(粒子是平展在上)

renderMode:渲染模式:

NSString * const kCAEmitterLayerUnordered;

NSString * const kCAEmitterLayerOldestFirst;

NSString * const kCAEmitterLayerOldestLast;

NSString * const kCAEmitterLayerBackToFront;

NSString * const kCAEmitterLayerAdditive;

 

scale:粒子的缩放比例:

seed:用于初始化随机数产生的种子

spin:自旋转速度

velocity:粒子速度


3、demo下载点击下载


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
iOS开发中,可以使用多种框架来显示UI界面。其中最常用的是UIKit框架,它提供了创建和管理应用程序的用户界面的功能。\[3\]通过使用UIKit框架,开发者可以使用各种视图和控件来构建用户界面,例如按钮、标签、文本框等。此外,UIKit还提供了布局管理器来帮助开发者实现界面的自动布局和适配。\[1\] 除了UIKit框架,还有其他一些框架可以用于显示UI界面,例如QuartzCore框架可以提供动画特效和硬件渲染的能力,CoreGraphics框架提供了2D绘制的功能,CoreLocation框架可以使用GPS和WIFI获取位置信息,MapKit框架可以嵌入地图到应用程序中,AVFoundation框架可以进行音频处理。\[3\] 最近在WWDC 2019上,苹果发布了全新的SwiftUI框架,它可以帮助开发者更轻松地创建用户界面。SwiftUI使用声明式编程的方式,通过简洁的代码来描述界面的外观和行为。它支持Flex Box布局,可以使用PreviewProvider来提供预览数据,还支持简单的逻辑控制,如if语句。同时,SwiftUI与已有的Swift语法不冲突,可以与UIKit框架无缝集成。\[1\]\[2\] 因此,在iOS开发中,可以使用UIKit框架或者最新的SwiftUI框架来显示UI界面,具体选择取决于开发者的需求和偏好。 #### 引用[.reference_title] - *1* *2* [iOS Swift UI 绘制第一个UI界面](https://blog.csdn.net/WangQingLei0307/article/details/120664181)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [iOS 之 UI界面和框架介绍](https://blog.csdn.net/yk_ddm/article/details/109190868)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值