-2

我正在尝试动态更改 CAEmitterLayer 实例的属性。我正在调用 setValue:forKey: 像这样:[self.mainViewController.mainView.spaceView.emitterLayer setValue:[NSNumber numberWithFloat:0] forKey:@"emitterCells.particle.velocityRange"]; 但我没有看到粒子发射器有任何变化。如果我通过硬编码将该属性设置为 0,则不会发射任何粒子。 是一个包含实现粒子系统的 UIView 的 gist 文件的链接。我知道 KVC 可能会因为错过打字而变得棘手,所以也许我只是忽略了一些明显的东西?

4

1 回答 1

0

所以也许我只是忽略了一些明显的东西

的确。问题是这一行:

setValue:[NSNumber numberWithFloat:0] forKey:@"emitterCells.particle.velocityRange"

字符串"emitterCells.particle.velocityRange"不是键。

这是一条关键路径。你需要打电话setValue:forKeyPath:

于 2015-10-31T02:46:15.713 回答