7
votes

It appears that the UIVisualEffectView does not blur the background when run on iPhone 6/6S. I have only seen one other person mention this, on the Apple Developer Forums, but nothing here.

I've written a sample project to demonstrate this. All you have to do is run this on an actual iPad and an iPhone 6 and you'll see. Note you'll need to add an image to your project.

It works fine in the simulator, but the blur view is opaque when run on an actual iPhone 6 or 6S.

My simple view controller:

class ViewController: UIViewController {

  override func viewDidLoad() {
    super.viewDidLoad()

    let effectView = UIVisualEffectView.init(effect: UIBlurEffect.init(style: .Light))
    effectView.frame = CGRectMake(20, 100, 200, 200)

    let imageView = UIImageView.init(image: UIImage(named: "image"))
    imageView.contentMode = UIViewContentMode.ScaleAspectFill
    imageView.frame = self.view.bounds

    self.view.addSubview(imageView)
    self.view.addSubview(effectView)
  }

}

I'm using Xcode 7 GM and running iOS 9.0.2 on both iPad Mini 2 and iPhone 6S.

1
I'm having the same issue, my blur is there for a second or two, but then turns opaque and grey, but it works on the simulator just fine.Andy Heard

1 Answers

3
votes

I had Reduce Transparency turned off in the Accessibility settings of my iPhone.