如何解决如何消除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)
这是我的问题。当我关闭模态视图时,注释在地图上保持展开状态。第一张照片是在我按下注释之前,第二张是在我按下注释之后。我希望“泡泡”保留为第一张照片:
解决方法
现在选择了注释,因此看起来不同了。
要继续使用 didSelect
监视注释上的点击事件,请立即在 mapView.deselectAnnotation
内调用 didSelect
。这将取消选择注释并将其恢复为正常的未选择大小。
或者,您可以将 UITapGestureRecognizer
添加到自定义 annotationViews
。这将释放您的 didSelect
方法,以便您可以在应用的功能集需要时轻松地充分利用它。
你应该可以
override func setSelected(_ selected: Bool,animated: Bool) {
//super.setSelected(false,animated: false)
}
在您的 MKMarkerAnnotationView
子类中以防止选择。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。