ios - Swift:调用 didDeselectAnnotationView 后,MKMapView 注释出现在左上角

标签 ios iphone swift mkmapview mkmapviewdelegate

我在我的 iOS 应用程序中绘制了一个 MKMapView,这张 map 上有一些注释,用自定义图像表示它们。选择特定注释时,图像会略有变化(发光)。

为此,我使用 mapView(mapView: MKMapView!, didSelectAnnotationView view: MKAnnotationView!) 委托(delegate)方法来更改图像(通过更改 view.annotation.image)。这似乎工作正常。

但是,当我使用 mapView(mapView: MKMapView!, didDeselectAnnotationView view: MKAnnotationView!) 方法在取消选择后将图像改回原样时,它会重新绘制左上角的注释 map 。任何用户与 map 的交互都会立即在适当的位置重新绘制它,所以就好像 map 在方法调用后直到单击或进行其他操作后才被刷新。

这实际上是更改注释图像的正确方法吗(通过覆盖当前的 view.annotation.image,如果是,是否有刷新 map 的方法?

编辑:我还注意到,每次我选择一个新注释时,它都会将 map 中心向下拖动大约 100 像素。在调用上面提到的这两种方法中的任何一种之后,我是否遗漏了一些我需要做的事情?

最佳答案

您可以尝试使用 mapView.removeAnnotation(yourAnnotation)mapview.addAnnotation(yourAnnotation) 删除并重新添加新图像的注释

关于ios - Swift:调用 didDeselectAnnotationView 后,MKMapView 注释出现在左上角,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29761694/

相关文章:

ios - 如何强制更新缓存的 Kendo UI 移动远程 View

ios - 如何为具有动态宽度的 UIButtons 设置背景?

json - Swift 4 可编码 : the keys are Int array in JSON data

ios - 在 swift 4 中取消选择 Collectionview 中的复选标记

android - 使用 RoboVM 将 App 上传到 Apple 的 App Store 时出现问题

ios - 有时收不到 Pushkit 通知

ios - 如何检测 iPhone 在 Objective-C 或 Swift 中掉落或向上移动?

javascript - css 或 javascript 中的简单飞行文本?

iphone - 如何为 iPhone 开发可分发的 UI 控件?

ios - UIButton addTarget 是如何工作的?