ios - 如何在点击 MKMapView 时运行函数,但在点击 AnnotationView 时返回?

标签 ios swift mkmapview uitapgesturerecognizer

在我的应用程序中,我有一个带注释的 mkmapview。 当我点击注释时,会出现一些带有附加信息的小 View 。

现在我想在点击 map 时隐藏此窗口,但在点击某些注释时则不想隐藏。

如何制作?

我认为类似这样的东西,但我不知道如何阅读它是注释 View 被点击的。 点击手势:

let mapTap = UITapGestureRecognizer(target: self, action: #selector(mapDidTap(_:)))
    map.addGestureRecognizer(mapTap)

处理程序:

@objc private func mapDidTap(_ sender: UITapGestureRecognizer) {
    if tapIsOnlyMap {
        hideSmallPopup()
    }
}

最佳答案

您可以使用 var selectedAnnotations: [MKAnnotation] 委托(delegate)属性来检测是否选择了任何注释。如果有空,您可以隐藏窗口。

一个问题,点击注释时如何打开此注释 View ?我认为您可以在点击注释时设置此“注释窗口”,然后您不应该检查 selectedAnnotations 来隐藏窗口。

享受

关于ios - 如何在点击 MKMapView 时运行函数,但在点击 AnnotationView 时返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56752162/

相关文章:

ios - 核心数据关系多对一

ios - Swift - 从 map 注释执行 Segue

ios - Swift:手势识别器无法识别选择器发送到实例

ios - 为什么我在使用 cgcontext 时会收到此错误

ios - 使用 DebugLog() 而不是 NSLog()

ios - 在Xcode中调试时是否可以在返回前找出返回值?

ios - 如何在单元格中显示 UIImage 数组?

ios - 如何打开常规设置页面(主页,不是应用程序设置)?

ios - 使用特定标识符设置所有单元格的高度?

ios - MKMapView 不填充 View (iOS)