我有一个CALayer和一个子图层。我想要实现的是超级层(子层下面的区域)的模糊,就像标准板一样。我试图在子图层上设置 .compositingFilter ,但这似乎不起作用。
任何想法如何解决这个问题?
来自子图层的代码:
CIFilter *blur = [CIFilter filterWithName:@"CIGaussianBlur"];
[blur setDefaults];
self.layer.backgroundFilters = [NSArray arrayWithObject:blur];
答案 0 :(得分:4)
上述应该可以正常工作,具体取决于它所使用的上下文。使用包含图像的简单超层,以下内容适用于我:
CALayer *blurLayer = [CALayer layer];
CIFilter *blur = [CIFilter filterWithName:@"CIGaussianBlur"];
[blur setDefaults];
blurLayer.backgroundFilters = [NSArray arrayWithObject:blur];
[superLayer addSublayer:blurLayer];