去除模糊效果 - 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。
可能存在 blurView
有 subViews
的情况(就像我的情况一样)并且根据某些条件 blurEffect
必须是 enabled/disabled。
在这种情况下,您无法隐藏 blurView
,因为它的 subViews
也会被隐藏。
解决方案: 将 blurView 的背景颜色(根据您预期的屏幕背景)设置为 alpha 1。这会产生移除 BlurEffect 的效果。
blurView.backgroundColor = UIColor.init(colorLiteralRed: 0.960, green: 0.960, blue: 1, alpha: 1)
我正在为我的视图添加模糊效果,如下所示:
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。
可能存在 blurView
有 subViews
的情况(就像我的情况一样)并且根据某些条件 blurEffect
必须是 enabled/disabled。
在这种情况下,您无法隐藏 blurView
,因为它的 subViews
也会被隐藏。
解决方案: 将 blurView 的背景颜色(根据您预期的屏幕背景)设置为 alpha 1。这会产生移除 BlurEffect 的效果。
blurView.backgroundColor = UIColor.init(colorLiteralRed: 0.960, green: 0.960, blue: 1, alpha: 1)