Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 我怎样才能使CAEmitterCell在其寿命结束时逐渐消失?_Ios_Core Animation - Fatal编程技术网

Ios 我怎样才能使CAEmitterCell在其寿命结束时逐渐消失?

Ios 我怎样才能使CAEmitterCell在其寿命结束时逐渐消失?,ios,core-animation,Ios,Core Animation,我正在为一些粒子设置动画,而不是在它们生命结束时消失,我希望它们淡出 我有一个生命周期为35.0的CAEmitterCell。我不想让粒子在整个生命周期内消失。我只希望它在最后淡出。可能是最后2秒或3秒。只是在文档中遇到了这一点,它可能指向正确的方向: 名字 单元格的名称 @属性(副本)NSString*名称 讨论 构建引用单元的动画关键点路径时,将使用单元名称。默认为零 例如,使用关键路径(如emitterCells.myCellName.redRange)将动画添加到单元的封闭层,将在层的e

我正在为一些粒子设置动画,而不是在它们生命结束时消失,我希望它们淡出


我有一个生命周期为35.0的
CAEmitterCell
。我不想让粒子在整个生命周期内消失。我只希望它在最后淡出。可能是最后2秒或3秒。

只是在文档中遇到了这一点,它可能指向正确的方向:

名字 单元格的名称

@属性(副本)NSString*名称 讨论 构建引用单元的动画关键点路径时,将使用单元名称。默认为零

例如,使用关键路径(如emitterCells.myCellName.redRange)将动画添加到单元的封闭层,将在层的emitterCells数组中以名称myCellName为单元的redRange属性设置动画

可用性 在Mac OS X v10.6及更高版本中提供。 声明于 CAEmitterCell.h


我推测您仍然可以将动画添加到层中,但关键路径引用了该层的一部分-在本例中是单元的属性。是否有单元格的alpha属性?

对于
CAEmitterCell
color
属性,将alpha值设置为
寿命*alphaSpeed
(其中alphaSpeed为-1.0/衰减持续时间)

因此,在35.0的寿命和2.0的衰减持续时间内,alphaSpeed将为-0.5,alpha将为17.5

这里有几个警告:

  • 这只有在你的细胞应该以全阿尔法开始的情况下才有效
  • 您必须使用使用
    CGColorRef
    创建的
    CGColorCreateCopyWithAlpha
    设置
    CAEmitterCell
    的颜色属性。
    UIColor
    CGColorCreate
    都将其值的最大值钳制为1.0。无论出于何种原因,
    CGColorCreateCopyWithAlpha
    都不会

  • 仔细想想,这会影响整个发射器,而不是单个粒子。我的下一个猜测是查看非常松散的类型和“可设置动画的”
    内容
    属性。