2017-01-05 3 views
0

У меня есть UIView и что создайте программно, затем я добавил subView в свой viewController.view. Тем не менее, вид не влияет на размытие. Вот мой код:UIVisualEffect не отображается на UIView

let blurryView: UIView = { 
    let blur = UIView() 
    blur.backgroundColor = UIColor.yellow 
    blur.alpha = 0.90 
    let blurEffect = UIBlurEffect(style: .extraLight) 
    let blurEffectView = UIVisualEffectView(effect: blurEffect) 
    blur.addSubview(blurEffectView) 
    blurEffectView.center = blur.center 
    blurEffectView.frame = blur.bounds 
    blur.translatesAutoresizingMaskIntoConstraints = false 
    return blur 
}() 

func manageBlurView() { 
    blurryView.widthAnchor.constraint(equalToConstant: 250).isActive = true 
    blurryView.heightAnchor.constraint(equalToConstant: 250).isActive = true 
    blurryView.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true 
    blurryView.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true 
} 

override func viewDidLoad() { 
    super.viewDidLoad() 

    view.addSubview(blurryView) 
    manageBlurView() 

} 
  • добавлен эффект размытия, и я два раза проверил, что с помощью breakpoints и пинты заявления if blur.subviews == [blurEffectView] { print("Blur effect added as a subview") } и распечатано.
  • У меня есть фоновое изображение, чтобы убедиться, что оно размыто.
  • Я также попытался добавить эффект размытия в viewDidLoad(), но ничего не произошло.

ответ

1

Добавить как желтый вид фона и помутнение зрения непосредственно как ребенка своего главного вида:

let backg = UIView(frame: self.view.frame) 
    backg.backgroundColor = UIColor.yellow 
    backg.alpha = 0.90 

    self.view.addSubview(backg) 

    // the blur effect 
    let blurEffect = UIBlurEffect(style: .extraLight) 
    let blurredEffectView = UIVisualEffectView(effect: blurEffect) 

    blurredEffectView.frame = self.view.frame 
    self.view.addSubview(blurredEffectView) 

Вы можете поместить код выше в viewDidLoad.

+0

Благодарим вас за помощь. Я не знаю, почему я должен это делать. Я имею дело с ограничениями, поэтому я могу легко переопределить вещи и переместить их. – MEnnabah