ios - iOS 10 中 setValue 后 CIFilter 未更新

标签 ios sprite-kit cifilter

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

这在 iOS 9 和升级到 Swift 3 之前运行得非常好,尽管我不认为 Swift 版本与它有任何关系。

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

最佳答案

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

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

关于ios - iOS 10 中 setValue 后 CIFilter 未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39909707/

相关文章:

ios - 如何摆脱 UIAlertView 半透明?

iOS - MPMoviePlayerController 无法从远程 URL 播放视频

ios - Swift - 使 Sprite Kit 节点仅受重力影响?

ios - EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x0000000000000200 向图像添加过滤器时

ios - 当 UITableViewCell 调整大小时重新排列单元格 subview

objective-c - KVO 不适用于类属性

ios - SpriteKit 中同时出现两个场景

ios - MobAD 插页式退出后无法识别触摸 - Swift

ios - 从 iPhone SDK 中的 UIImage 获取黑白图像?

ios - CIFilter 在 iOS 中可用吗?