我希望我的 self.view 内容应该是可见但模糊的,建议最好的方法

I want my self.view content should be visible but blurred, propose best way

在故事板中,我在视图 controller.Then 中添加了单独的 UIView 作为第一响应者,我将该视图添加为 self.view 的子视图。但我希望 self.view 在显示子视图时应该模糊。我该怎么做?

我尝试通过应用

let imageView = UIImageView(image: UIImage(named: "blur2.jpg"))
imageView.frame = self.view.bounds
imageView.contentMode = .scaleAspectFit
self.view.addSubview(imageView)
let blurEffect = UIBlurEffect(style: .regular)
let blurredEffectView = UIVisualEffectView(effect: blurEffect)
blurredEffectView.frame = imageView.bounds
self.view.addSubview(blurredEffectView)


self.view.addSubview(view_Message)
view_Message.center = self.view.center
view_Message.alpha = 1
view_Message.layer.cornerRadius = 0.3
view_Message.transform = CGAffineTransform.init(scaleX: 1.3, y: 1.3)

view_Message是UIView,在storyBoard中作为FirstResponder。

但是我的 self.view 内容不可见了。我希望我的 self.view 应该变得模糊(但应该轻轻显示),同时我希望显示我的子视图。

检查 3D 视图。看来您的 ImageView 位于所有视图之上。这将隐藏你所有的观点。

尝试

self.view.sendSubviewToBack(imageView)

最后,这将在后面发送 imagview,您的所有子视图都将可见。

您也可以像这样使用 visualEffectView 而不是 blurEffect:

 let visualEffectView = UIVisualEffectView(effect: UIBlurEffect(style: .light))
 visualEffectView.frame = view.bounds
 visualEffectView.alpha = 0.7
 self.view.addSubview(visualEffectView)

我建议你

  • 1. 取一个 self.view.bounds[=35 帧的 UIView(比方说 myView) =] 与 clear 作为 backgroundcolor
  • 2. 添加同帧的imageView
  • 3.设置imageView背景色为白色,alpha接近0.7,模糊效果。
  • 4. 现在将您的 view_Message 作为子视图添加到 myView 中。
  • 5. Atlas 将 myView 添加到 self.view

或者您可以在故事板中使用 UIVisualEffectBlur class 或以编程方式为 iOS 8+ 提供。

你可以这样做

        let frame = CGRectMake(0, 0, self.view.frame.size.width,self.view.frame.size.height )
        blurview = UIView.init(frame: frame)
        blurview.backgroundColor = UIColor.blackColor()
        blurview.layer.opacity = 0.5
        self.view.addSubview(blurview)