如何解决子视图阻止iOS上的MapBox mapView手势识别器
我有一个iOS应用,其MapBox MGLMapView已添加到基本ViewController中。当我在mapView上方的ViewController中添加第二个UIView时,mapView上的手势识别器有时无法识别手势。
// ViewController
...
var mapView: MGLMapView = MGLMapView()
override func viewDidLoad() {
super.viewDidLoad()
mapView = MGLMapView(frame: view.bounds,styleURL: url)
mapView.autoresizingMask = [.flexibleWidth,.flexibleHeight]
mapView.delegate = self
mapView.allowsTilting = false
mapView.showsUserLocation = true
view.addSubview(mapView)
self.view.sendSubviewToBack(mapView)
...
}
...
let rect = MapRect()
view.addSubview(rect)
rect.center = CGPoint(x: UIScreen.main.bounds.midX,y: UIScreen.main.bounds.midY)
在将MapRect()添加到视图之前,mapView中的所有手势识别都可以正常工作。
// Map Rect
class MapRect: UIView {
...
init() {
self.backgroundColor = .clear
self.layer.cornerRadius = 0
self.isUserInteractionEnabled = true
// Add pan gesture recognizer to move the rect around
let panGestureRecognizer = UIPanGestureRecognizer(target:self,action:#selector(dragSymbol(_:)))
panGestureRecognizer.maximumNumberOfTouches = 1
panGestureRecognizer.minimumNumberOfTouches = 1
self.addGestureRecognizer(panGestureRecognizer)
// Add pinch gesture recognizer to resize rect
let pinchGestureRecognizer = UIPinchGestureRecognizer(target:self,action:#selector(resizeSymbol(_:)))
self.addGestureRecognizer(pinchGestureRecognizer)
}
}
另外,当我添加MapRect()时,UIView中的手势识别器可以正常工作。我尝试设置MapRect()的背景色,以查看视图是否超出了我的预期范围,但并非如此。
最后不确定这是相关的还是偶然的,但似乎手势识别器在从MapRect()的边缘开始延伸的屏幕区域上失败的机会更多
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。