【发布时间】:2013-04-27 16:30:36
【问题描述】:
我正在尝试将 CIFilter 添加到 CALayer 的 backgroundFilters 属性中,以让它在 UIView 中绘制。因此我将CALayer 子类化并在init 中执行以下操作:
CIFilter* blur = [CIFilter filterWithName:@"CIGaussianBlur"];
[blur setDefaults];
[blur setValue:@(10) forKey:@"inputRadius"];
self.backgroundFilters = @[ blur ];
然后我创建了一个UIView 的子类,通过返回+[UIView layerClass] 中的图层类,将这个自定义图层作为图层。
这样可以了,上面的代码已经执行了!
但是,如果我将此视图放置在 UIImageView 上方,我希望图像在放置此视图的位置绘制得模糊。但事实并非如此!该视图的行为就像一个常规视图,并采用我设置为它的backgroundColor 属性的任何颜色/alpha 值,但我只看到底层UIImageView 原样,没有模糊!
【问题讨论】:
-
你找到方法了吗?
-
我写了这个:ios-coding.com/bcblurview-drawing-glass-like-views(请注意,模糊是针对静止图像的,您可以使用 Accelerate 框架显着加快速度)