title: Draw hole on UIBlurEffect
body: <p><strong>Xcode 8.0 - Swift 2.3</strong><br />
  I have an internal extension to create blur layer that works great:</p>
  <pre><code>internal extension UIView {
      
      /**
       Add and display on current view a blur effect.
       */
      internal func addBlurEffect(style style: UIBlurEffectStyle = .ExtraLight, atPosition position: Int = -1) -&gt; UIView {
          // Blur Effect
          let blurEffectView = self.createBlurEffect(style: style)
          if position &gt;= 0 {
              self.insertSubview(blurEffectView, atIndex: position)
          } else {
              self.addSubview(blurEffectView)
          }
          return blurEffectView
      }
   
      internal func createBlurEffect(style style: UIBlurEffectStyle = .ExtraLight) -&gt; UIView {
          let blurEffect = UIBlurEffect(style: style)
          let blurEffectView = UIVisualEffectView(effect: blurEffect)
          blurEffectView.frame = self.bounds
          blurEffectView.autoresizingMask = [.FlexibleWidth, .FlexibleHeight]
          return blurEffectView
      }
      
  }
  </code></pre>
  <p>Question is: how can I add a shaped hole in blur overlay?
  I have made many attempts:</p>
  <pre><code>let p = UIBezierPath(roundedRect: CGRectMake(0.0, 0.0, self.viewBlur!.frame.width, self.viewBlur!.frame.height), cornerRadius: 0.0)
  p.usesEvenOddFillRule = true
  let f = CAShapeLayer()
  f.fillColor = UIColor.redColor().CGColor
  f.opacity = 0.5
  f.fillRule = kCAFillRuleEvenOdd
  p.appendPath(self.holePath)
  f.path = p.CGPath
  self.viewBlur!.layer.addSublayer(f)
  </code></pre>
  <p>but result is:</p>
  <p><a href="https://i.stack.imgur.com/x2ljl.png" rel="noreferrer"><img src="https://i.stack.imgur.com/x2ljl.png" alt="enter image description here" /></a></p>
  <p>I can't understand why hole is ok on <code>UIVisualEffectView</code> but not in <code>_UIVisualEffectBackdropView</code></p>
  <h2>UPDATE</h2>
  <p>I've tryied @Arun solution (with UIBlurEffectStyle.Dark), but result is not the same:</p>
  <p><a href="https://i.stack.imgur.com/93FRL.jpg" rel="noreferrer"><img src="https://i.stack.imgur.com/93FRL.jpg" alt="enter image description here" /></a></p>
  <h2>UPDATE 2</h2>
  <p>With @Dim_ov's solution I have:
  <a href="https://i.stack.imgur.com/DxdJM.png" rel="noreferrer"><img src="https://i.stack.imgur.com/DxdJM.png" alt="enter image description here" /></a></p>
  <p>In order to make this work I need to hide <code>_UIVisualEffectBackdropView</code>in this way:</p>
  <pre><code>    for v in effect.subviews {
          if let filterView = NSClassFromString(&quot;_UIVisualEffectBackdropView&quot;) {
              if v.isKindOfClass(filterView) {
                  v.hidden = true
              }
          }
      }
  </code></pre>