CAEmitter顺利启动动画

gab*_*ata 2 cocoa-touch objective-c ios caemitterlayer caemittercell

我想让CAEmitterLayer制作一种光剑动画.我希望从一个点出现一束光并停止.我的问题是我不能让动画的开头顺利发生.一旦我运行代码,就会看起来好像已经过了几秒而没有任何动画.

我尽可能地删除了代码,看看我是否能找到问题的根源,但即使最简单,它仍然会发生.这是我现在的代码示例,它仍然存在问题:

CAEmitterLayer *emitterLayer = [CAEmitterLayer layer];
emitterLayer.emitterPosition = CGPointMake(10, 10);

CAEmitterCell *emitterCell = [CAEmitterCell emitterCell];
emitterCell.contents = (id)[[UIImage imageNamed:@"LightParticle"] CGImage];

emitterCell.birthRate = 100;
emitterCell.lifetime = 10;
emitterCell.velocity = 10;

emitterLayer.emitterCells = @[emitterCell];
[self.view.layer addSublayer:emitterLayer];
Run Code Online (Sandbox Code Playgroud)

我猜我一定错过了一些明显的东西,但我几天都无法解决这个问题.

将birthRate设置为0将导致光束平滑消失,但将其设置回任何数字将导致它再次出现没有动画.

谢谢您的帮助.

gab*_*ata 14

终于在这里找到了答案: iOS 7 CAEmitterLayer不恰当地产生粒子

这就是我所缺少的:

emitter.beginTime = CACurrentMediaTime();
Run Code Online (Sandbox Code Playgroud)