ios - UIView 捕获单指 Action ,但发送两指捏合以查看后面

标签 ios swift uiview mapkit uigesturerecognizer

我有一个带有 MKMapView 和覆盖 UIView 的应用程序,用户可以在 map 上绘制多边形,这是通过使用 完成的touchesBegantouchesMoved 等,然后累积触摸位置并将它们添加为 CAShapeLayer 的路径。`

这工作得很好,但我们也希望能够通过捏合来缩放 map View 。

所以我们需要的是:

单指触摸或拖动应被覆盖 View 捕获并记录为用户正在绘制的多边形的输入。

多手指触摸(捏合、旋转等)应传递到 map View (位于叠加层后面)

实现这一目标最明智的方法是什么?显然 hitTesttouchesMoved 都无法告诉我有多少根手指放在了屏幕上。

最佳答案

我相信您会想要实现 this在您的叠加层中。

let panGesture = UIPanGestureRecognizer(target: self, action:#selector(draggedView(sender:)))
panGesture.delegate = self

@objc func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer,
                             shouldReceive touch: UITouch) -> Bool {
    if gestureRecognizer is UIPanGestureRecognizer {
        return false
    }
    return true
}

您检查它是否是捏合手势(或gesture.numberOfTouches > 1),如果是,则不处理它。然后该事件应该冒泡到 map View 。

关于ios - UIView 捕获单指 Action ,但发送两指捏合以查看后面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52628352/

相关文章:

swift - 这两段代码没有按顺序执行?

iphone - 获取当前UIView的ID objective-c iphone

swift - 按下 TableView 单元格

ios - 在 View 中提高过渡平滑度

objective-c - 为什么在我对自定义的 UIViewController 进行子类化时无法访问变量?

ios - Restkit 简单的 NSDictionary 映射

ios - 未调用 UIButton 目标操作

ios - PFImageView 未显示在窗口中

ios - 在 swift : How to populate the next available Table View cell with the contents of a Text Field?

ios - UISearchController 问题