我创建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不叫。
它可能被MapView的手势识别器覆盖。尝试将blurView放置在mapView上,而不是mapView的子视图。作为父视图的子视图。 – JustinM
这没有奏效,而且我还是需要它作为mapView的超级视图,因为在模糊效果视图的顶部有另一个视图,它是不应该模糊的父视图的子视图。 – Latcie
只是使用bringtofront到你的blurview –