我正在尝试动态更改CAEmitterLayer实例上的属性。我正在调用setValue:forKey:像这样:[self.mainViewController.mainView.spaceView.emitterLayer setValue:[NSNumber numberWithFloat:0] forKey:@"emitterCells.particle.velocityRange"];
但是我没有看到粒子发射器有任何变化。如果我通过硬编码将该属性设置为0,则不会发射粒子。 Here是指向包含实现粒子系统的UIView的gist文件的链接。我知道KVC可能会因为错过输入内容而变得棘手,所以也许我只是过度看待明显的东西?
答案 0 :(得分:0)
所以也许我只是过分看待明显的东西
事实上。问题是这一行:
setValue:[NSNumber numberWithFloat:0] forKey:@"emitterCells.particle.velocityRange"
字符串"emitterCells.particle.velocityRange"
不是密钥。
这是密钥路径。您需要致电setValue:forKeyPath:
。