CALayer的的backgroundFilters没有按上没有的UIView(CALayer

2019-09-27 16:52发布

我想一个CIFilter添加到的backgroundFilters财产CALayer让这场平局中UIView 。 因此,我子类CALayer ,并在init执行以下命令:

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

然后我创建的一个子类UIView具有此定制层,因为它通过在返回层类的层+[UIView layerClass]

这是工作,上面的代码被执行!

但是,如果我把一个以上这种观点UIImageView我希望要绘制的图像所迷离,我把这个观点。 但事实并非如此! 视图只是行为就像一个普通视图,并采取任何颜色/ alpha值我设置到它backgroundColor属性,但我只看到垫层UIImageView ,因为它是没有模糊!

Answer 1:

其原因的CALayer的backgroundFilters上做的UIView什么是不幸的是, backgroundFilters不支持在iOS中图层属性。 这里面的文件里面 ,在说明书的末尾:

特别注意事项

不支持在iOS的层这个属性。

我被这个自己试图插入一个被咬UIView是模糊其背后的内容。 模糊iOS上的视图,一些更多的工作似乎是需要(复制了图像内的UIViews内容,那么模糊和示出图像)。



Answer 2:

我认为这是预期的行为。

从文档 :

背景过滤器会影响显示通过进入层本身的层后面的内容。 典型地,这内容属于充当层的父superlayer。

我的解释是,这些过滤器只影响在它们包含在视图中的内容。



文章来源: CALayer's backgroundFilters doesn nothing on UIView
标签: ios ios6 calayer