微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何消除swift上注解的动画

如何解决如何消除swift上注解的动画

我正在使用 MapKit,并且在地图上有一些注释。它们是markerAnnotationViews。问题是,当用户触摸注释时,我希望呈现一个视图控制器(不通过标注附件视图)。

目前,我已经使用 didSelectView with: MKAnnotationView 这样做了。但我的问题是,当我按下注释时,它会展开并显示以下视图控制器。

有没有办法让注释在用户按下时不展开?

谢谢。

编辑: 当我按下注释时,这就是我呈现模态视图控制器的方式:

func mapView(_ mapView: MKMapView,didSelect view: MKAnnotationView) {
    
    if let annotation = view.annotation as? FirstAnnotation {
        let rootVC = DetailPinVC()
        rootVC.title = "Detail Pin"
        rootVC.navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .close,target: self,action: #selector(dismissDetailVC))
        let navVC = UINavigationController(rootViewController: rootVC)
        present(navVC,animated: true)
    } else if let annotation = view.annotation as? SecondAnnotation {
        let rootVC = DetailPinVC()
        rootVC.title = "Detail Pin"
        rootVC.navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .close,action: #selector(dismissDetailVC))
        let navVC = UINavigationController(rootViewController: rootVC)

这是我的问题。当我关闭模态视图时,注释在地图上保持展开状态。第一张照片是在我按下注释之前,第二张是在我按下注释之后。我希望“泡泡”保留为第一张照片:

enter image description here

enter image description here

解决方法

现在选择了注释,因此看起来不同了。

要继续使用 didSelect 监视注释上的点击事件,请立即在 mapView.deselectAnnotation 内调用 didSelect。这将取消选择注释并将其恢复为正常的未选择大小。

或者,您可以将 UITapGestureRecognizer 添加到自定义 annotationViews。这将释放您的 didSelect 方法,以便您可以在应用的功能集需要时轻松地充分利用它。

,

你应该可以

override func setSelected(_ selected: Bool,animated: Bool) {
    //super.setSelected(false,animated: false)
}

在您的 MKMarkerAnnotationView 子类中以防止选择。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。