iOS,如何在背景视图中添加模糊效果?

时间:2014-04-17 21:28:40

标签: ios objective-c cocoa-touch uiview

我正在尝试为背景视图添加模糊效果。

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

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

我已经看到各种方法不确定什么会起作用,什么是最好的方法。

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

2 个答案:

答案 0 :(得分: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

有很多方法可以实现模糊,最受欢迎的两种方法可能是使用Apple UIImageEffects WWDC示例代码can be found here,或使用GPUImage,其中can be found here

答案 1 :(得分:0)

单击链接指向当前视图并以模糊效果影响背景

https://stackoverflow.com/a/52374977/5233180