0

UIView在屏幕中间有一个用于登录的目的。它被限制在周围视图的 0.25 高度(覆盖整个窗口)

我注意到,如果我创建一个UIVisualEffectView(通过blurBackgroundForView(_)作为背景的方法UIView,它太小了(检查我如何创建的代码UIVisualEffectView),尽管它具有相同的框架。你可以看到效果,当你更改backgroundColor.greenColor.视图高于模糊效果。

视图控制器

override func viewWillAppear(animated: Bool) {
  AnimationHelper.blurBackgroundForView(self.view)
  view.backgroundColor = .greenColor()
}

blurBackgroundForView(_)

static func blurBackgroundForView(view: UIView!){
  view.backgroundColor = .clearColor()
  let blurEffect = UIBlurEffect(style: .Light)
  let blurEffectView = UIVisualEffectView(effect: blurEffect)
  blurEffectView.frame = view.bounds
  view.insertSubview(blurEffectView, atIndex: 0)
}

在此处输入图像描述

4

1 回答 1

1

框架不保证在viewWillAppear.

尝试设置模糊视图的框架viewDidLayoutSubviews。或者,您可以直接在模糊视图上设置自动调整大小的蒙版,以便在其父视图调整大小时调整大小:

blurView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;

您还应该在viewWillAppear.

于 2015-05-22T19:54:19.127 回答