模糊CALayer的超级层

时间:2010-05-12 18:13:14

标签: cocoa core-animation

我有一个CALayer和一个子图层。我想要实现的是超级层(子层下面的区域)的模糊,就像标准板一样。我试图在子图层上设置 .compositingFilter ,但这似乎不起作用。

任何想法如何解决这个问题?

来自子图层的代码:

CIFilter *blur = [CIFilter filterWithName:@"CIGaussianBlur"];
[blur setDefaults];     
self.layer.backgroundFilters = [NSArray arrayWithObject:blur];

1 个答案:

答案 0 :(得分:4)

上述应该可以正常工作,具体取决于它所使用的上下文。使用包含图像的简单超层,以下内容适用于我:

CALayer *blurLayer = [CALayer layer];
CIFilter *blur = [CIFilter filterWithName:@"CIGaussianBlur"];
[blur setDefaults];     
blurLayer.backgroundFilters = [NSArray arrayWithObject:blur];    
[superLayer addSublayer:blurLayer];