0

我有一个 CAEmitterLayer,我想在每个粒子的生命过程中运行一个简单的动画。

一旦粒子出现,我希望它放大到大约 1.2,然后在短时间内让它缩小到 1.0 并保持这种状态,直到它的生命周期结束。

我知道 CAEmitterCell 的 scale、scaleRange 和 scaleSpeed 属性,但它们对于我需要的东西来说太随机了。

这可能吗?我试过像这样添加 CABasicAnimation(我的 CAEmitterCell 的名字是“heart”):

CABasicAnimation *anim = [CABasicAnimation animationWithKeyPath:@"emitterCells.heart.scale"];
anim.fromValue = @(1.0);
anim.toValue = @(2.0);
anim.duration = 3.0;
anim.fillMode = kCAFillModeForwards;
anim.repeatCount = CGFLOAT_MAX;
[self.heartsEmitter addAnimation:anim forKey:@"scaleAnimation"];

但它不起作用,粒子只是以随机比例出现,它们根本没有动画。

4

1 回答 1

0

我不完全确定,但在我看来,您将动画应用于发射器而不是单元格。

如果CAEmitterCell' 的名字是 heart 试试这个:[self.heart addAnimation:anim forKey:@"scaleAnimation"];. 这有帮助吗?

于 2015-09-08T00:44:15.157 回答