在iOS 10中的setValue之后,CIFilter不会更新

时间:2016-10-07 04:59:27

标签: ios sprite-kit cifilter

我有一个使用SpriteKit的应用程序。我使用带有CIFilter的SKEffectNode进行了简单的转换,我根据某些函数应用setValue来更改每次更新时的过滤器参数(使用SpriteKit的内置更新循环方法)。

这在iOS 9上完全正常,在我升级到Swift 3之前,虽然我不认为Swift版本与它有任何关系。

现在,我得到一个带有第一个参数值的帧,该值一直持续到最终参数值。这里从iOS 9到iOS 10的变化是什么?

1 个答案:

答案 0 :(得分:1)

我注意到我在计时器开始时启用了shouldEnableEffects,并在结束时禁用了它,这与我在屏幕上观察到的过滤器值相对应。

在每次调用setValue之后将shouldEnableEffects设置为true可以解决问题,因此我看到每次更新时都会更改过滤器。不确定这是否是黑客,或者出于性能或优化原因在SpriteKit或iOS 10中发生了什么变化。