2017-06-05 49 views
0

我创建blurEffectView这样:从上海华卸下与gestureRecognizer

var blurEffectView: UIVisualEffectView{ 
    let blurEffect = UIBlurEffect(style: UIBlurEffectStyle.light) 
    let blurEffectView = UIVisualEffectView(effect: blurEffect) 
    blurEffectView.frame = self.view.bounds 
    blurEffectView.autoresizingMask = [.flexibleWidth, .flexibleHeight] 
    return blurEffectView 
} 

然后一个tapGestureRecognizer添加到效果图。

let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(self.dismissBlurView)) 
      self.blurEffectView.addGestureRecognizer(tapGestureRecognizer) 
      self.mapView.addSubview(self.blurEffectView) 

这里是驳回它的功能:

func dismissBlurView(){ 
    blurEffectView.removeFromSuperview() 
} 

我显然失去了一些东西,因为当我在模糊视图点击dismissBlurView不叫。

+0

它可能被MapView的手势识别器覆盖。尝试将blurView放置在mapView上,而不是mapView的子视图。作为父视图的子视图。 – JustinM

+0

这没有奏效,而且我还是需要它作为mapView的超级视图,因为在模糊效果视图的顶部有另一个视图,它是不应该模糊的父视图的子视图。 – Latcie

+0

只是使用bringtofront到你的blurview –

回答

0

试试这个

class YourViewController: UIViewController, UIGestureRecognizerDelegate{ 

    tapGestureRecognizer.delegate = self 

    func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool { 
      return true 
    } 
} 
0

尝试,因为它的工作对我来说,使用此代码。我已经更改了块声明,并在viewDidLoad中设置了块的外部大小。

var blurEffectView: UIVisualEffectView = { 
     let blurEffect = UIBlurEffect(style: UIBlurEffectStyle.light) 
     let blurEffectView = UIVisualEffectView(effect: blurEffect) 
     blurEffectView.autoresizingMask = [.flexibleWidth, .flexibleHeight] 
     return blurEffectView 
    }() 

//设置UIVisualEffectView框架viewDidLoad中

self.blurEffectView.frame = self.view.bounds 

     self.blurEffectView.addGestureRecognizer(UITapGestureRecognizer.init(target: self, action: #selector(self.dismissBlurView(gesture:)))) 
     self.view.addSubview(self.blurEffectView) 

func dismissBlurView(gesture: UITapGestureRecognizer){ 
     blurEffectView.removeFromSuperview() 
    } 
+0

虽然这段代码可能回答这个问题,但提供关于如何和/或为什么它解决问题的附加上下文会提高答案的长期价值。 – thewaywewere

+0

@thewaywewere感谢您的建议,我一定会照顾它的。 –