CALayer的backgroundFilters对UIView没有任何帮助

Mic*_*chs 1 calayer ios ios6

我正在尝试将CIFilter添加到a的backgroundFilters属性中以CALayer使其在a中绘制UIView.因此我将子类化CALayer并在init中执行以下操作:

CIFilter* blur = [CIFilter filterWithName:@"CIGaussianBlur"];
[blur setDefaults];
[blur setValue:@(10) forKey:@"inputRadius"];
self.backgroundFilters = @[ blur ];
Run Code Online (Sandbox Code Playgroud)

然后我创建了一个子类,UIView通过返回图层类,将该自定义图层作为图层+[UIView layerClass]

这是有效的,上面的代码执行!

但是,如果我把这个视图放在上面,UIImageView我希望在放置这个视图的地方画出图像.但事实并非如此!该视图就像一个常规视图,并采用我设置为它的backgroundColor属性的任何颜色/ alpha值,但我只是看到底层UIImageView,没有模糊!

Tam*_*ese 7

CALayer的backgroundFilters在UIView上什么都不做的原因是,不幸的backgroundFilters是iOS中的图层不支持该属性.它位于文档内部,在描述的最后:

特别注意事项

iOS中的图层不支持此属性.

我自己试图插入一个UIView模糊背后内容的东西.要模糊iOS上的视图,似乎还需要做一些工作(在图像中复制UIViews内容,然后模糊并显示图像).

  • 然而,在同一文档的顶部,它在“可用性”部分中指出:iOS 2.0+ (2认同)