Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS,如何在背景视图中添加模糊效果?_Ios_Objective C_Cocoa Touch_Uiview - Fatal编程技术网

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

iOS,如何在背景视图中添加模糊效果?,ios,objective-c,cocoa-touch,uiview,Ios,Objective C,Cocoa Touch,Uiview,我正在尝试向背景视图添加模糊效果 这是我的背景视图。 我相信这个想法是拍摄父视图的快照,然后为该图像添加模糊效果 我见过各种各样的方法,不确定什么会起作用,什么是最好的方法 另外,我也不确定在哪里创建快照。最常见的方法实际上可能只是拍摄快照并将其模糊 您可以通过执行以下操作来拍摄快照: + (UIImage *) imageWithView:(UIView *)view { UIGraphicsBeginImageContextWithOptions(view.bounds.size,

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

这是我的背景视图。

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

我见过各种各样的方法,不确定什么会起作用,什么是最好的方法


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

最常见的方法实际上可能只是拍摄快照并将其模糊

您可以通过执行以下操作来拍摄快照:

+ (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,则需要使用较慢的方法


实现模糊的方法有很多,最流行的两种可能是使用Apple的
UIImageEffects
WWDC示例代码,或者使用
GPUImage
,这两种方法。

下面的链接指向当前视图并使用模糊效果影响背景


可能重复的感谢,我应该把/调用该函数放在哪里?你可以把它放在任何你想放的地方(最有可能的地方是
UIImage
类别)。当你想获取某个视图的快照时(可能是当你准备在其上放置一个覆盖图时),你可以调用它。这看起来更像是一个注释,而不是一个答案,或者可能是你链接的问题的重复标志感谢你的建议,但我没有足够的声誉来添加评论,现在当我有它,我会把它作为一个评论后,我有它