我正在尝试使用以下代码片段创建模糊效果:
let glowEffectNode = SKEffectNode()
glowEffectNode.shouldRasterize = true
let glowSize = CGSize(width: barSize.width, height: barSize.height)
let glowEffectSprite = SKSpriteNode(color: barColorData.topColor, size: glowSize)
glowEffectNode.addChild(glowEffectSprite)
let glowFilter = CIFilter(name: "CIGaussianBlur")
glowFilter!.setDefaults()
glowFilter!.setValue(5, forKey: "inputRadius")
glowEffectNode.filter = glowFilter
当然,它在iOS 8.x上运行得非常完美,但从iOS 9.x开始(我已经在9.0和9.1上尝试过),模糊效果无法正常工作。 (在模拟器上,节点似乎有点透明,但绝对不模糊,在设备上它看起来模糊但被裁剪了,并且与其中心位置有偏移:/)
是否有一种快速的方式使用CIFilter来修复这个问题?
CIFilter
(即Core Image框架)是有问题的,还是只针对于SKEffectNode
(SpriteKit框架)有问题呢?根据答案不同,我会稍微修改一下问题的标题。另外,感谢您提供的解决方案。 - Nicolas Miari