当我第一次设置发射器时,我可以这样做:
self.cell = [CAEmitterCell emitterCell];
self.cell.yAcceleration = 20;
...
self.emitter.emitterCells = [NSArray arrayWithObjects:self.cell,nil];但是假设我创建了一个5秒后触发的计时器,我就这样做了:
- (void)timerFired
{
self.cell.yAcceleration = -10;
}计时器会触发,但是CAEmitterCell的CAEmitterCell不会被更改。或者至少屏幕上的粒子发射没有任何变化。如何才能使CAEmitterCell尊重对其属性所做的更改?
发布于 2013-10-24 18:47:12
这并不是很明显,但这里有一个解决方案:
[self.emitter setValue:[NSNumber numberWithFloat:-10.0]
forKeyPath:@"emitterCells.cell.yAcceleration"];其中,"cell“是此处指定的名称:
[self.cell setName:@"cell"];发布于 2014-08-27 08:38:17
当您用新的单元格插入self.emitter时,对象将被保留,所以..when您用计时器更改cell.yAcceleration,self.emitter的单元格不能更改,self.cell.yAcceleration已经更改了already.So,应该使用self.emitter的关键路径。
https://stackoverflow.com/questions/19573814
复制相似问题