2014-04-17 87 views
-2

我正在尝试将模糊效果添加到背景视图。iOS,如何将模糊效果添加到背景视图?

这是我的背景视图。 https://github.com/martinjuhasz/MJPopupViewController/blob/master/Source/MJPopupBackgroundView.m

我认为这个想法是拍摄父视图的快照,然后为该图像添加模糊效果。

我见过各种方法不知道什么会工作,什么是最好的方法。

另外,我不确定在哪里创建快照。

+1

可能重复的[iOS 7风格模糊视图](http://stackoverflow.com/questions/17036655/ios-7-style-blur-view) –

回答

1

最常见的方式可能只是拍摄快照并模糊处理。

+ (UIImage *) imageWithView:(UIView *)view 
{ 
    UIGraphicsBeginImageContextWithOptions(view.bounds.size, view.opaque, 0.0f); 
    [view drawViewHierarchyInRect:view.bounds afterScreenUpdates:NO]; 
    UIImage * snapshotImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    return snapshotImage; 
} 

请记住,这是一个快速iOS7 +模糊方法,所以如果你想支持较低版本的iOS,您将需要使用较慢的方法:

你可以做这样的事情拍摄快照,detailed in this answer

有很多的方式来实现模糊,2个最流行的可能是使用苹果的WWDC UIImageEffects示例代码can be found here,或者使用GPUImage,这can be found here

+0

谢谢,我会在哪里/调用该功能? – Jules

+0

你可以把它放在任何你想要的地方(最有可能的地方是'UIImage'类别)。当你想获得某个视图的快照时(可能是当你要在其上放置一个叠加层时),你可以调用它。 – Dima