0

UIView画面の中央にログイン用の があります。周囲のビューの 0.25 の高さに制限されます (ウィンドウ全体をカバーします)。

を作成すると ( の背景としてメソッドを使用して を作成すると、フレームは同じですが、小さすぎることに気付きましたUIVisualEffectView(を作成する方法のコードを確認してください)。 を に変更すると、効果を確認できます。 View は Blureffect よりも高くなっています。blurBackgroundForView(_)UIViewUIVisualEffectViewbackgroundColor.greenColor

ViewController

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 に答える