去除模糊效果 - ObjC

Remove blur effect - ObjC

我正在为我的视图添加模糊效果,如下所示:

UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark];
UIVisualEffectView *blurEffectView = [[UIVisualEffectView alloc] initWithEffect:blurEffect];
[blurEffectView setFrame:self.view.bounds];
[self.view addSubview:blurEffectView];

但是我怎样才能disable/remove模糊呢?

由于 UIVisualEffectView 子类 UIView,就像您将视觉效果视图作为子视图添加到 self.view 一样,只需将其隐藏(UIView 隐藏 属性) 或从子视图中删除它。

在你的例子中,我会添加一个引用视图中 blurEffectView 的实例变量,这样你就可以在需要时将其隐藏的 属性 设置为 true 或 false。

可能存在 blurViewsubViews 的情况(就像我的情况一样)并且根据某些条件 blurEffect 必须是 enabled/disabled。

在这种情况下,您无法隐藏 blurView,因为它的 subViews 也会被隐藏。

解决方案: 将 blurView 的背景颜色(根据您预期的屏幕背景)设置为 alpha 1。这会产生移除 BlurEffect 的效果。

blurView.backgroundColor = UIColor.init(colorLiteralRed: 0.960, green: 0.960, blue: 1, alpha: 1)