【问题标题】:Remove blur effect - ObjC去除模糊效果 - ObjC
【发布时间】:2015-04-24 22:29:37
【问题描述】:
我正在为我的视图添加模糊效果,如下所示:
UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark];
UIVisualEffectView *blurEffectView = [[UIVisualEffectView alloc] initWithEffect:blurEffect];
[blurEffectView setFrame:self.view.bounds];
[self.view addSubview:blurEffectView];
但是如何禁用/移除模糊?
【问题讨论】:
标签:
ios
uivisualeffectview
【解决方案1】:
由于UIVisualEffectView 是UIView 的子类,就像您将视觉效果视图添加到self.view 作为子视图一样,只需将其隐藏(UIView 隐藏属性)或将其从子视图中删除。
在您的情况下,我将在视图中添加一个引用 blurEffectView 的实例变量,以便您可以根据需要将其隐藏属性设置为 true 或 false。
【解决方案2】:
可能存在blurView 具有subViews 的情况(例如我的情况),并且根据某些条件必须启用/禁用blurEffect。
在这种情况下,您无法隐藏blurView,因为它的subViews 也将被隐藏。
解决方案: 使用 alpha 1 设置 blurView 的背景颜色(根据您预期的屏幕背景)。这会产生移除 BlurEffect 的效果。
blurView.backgroundColor = UIColor.init(colorLiteralRed: 0.960, green: 0.960, blue: 1, alpha: 1)