我已按照指南here创建自定义标注视图。我在自定义类中添加了两行:
var dismissesAutomatically: Bool = false
var isAnchoredToAnnotation: Bool = true
当在平移和缩放时保持标注视图显示并保持锚定到注释时,这些似乎可以完成这项工作。但是,当用户平移或缩放时,标注似乎会下降大约20个像素。
点击注释时,但在平移/缩放之前的初始视图:
平移/缩放后立即查看:
答案 0 :(得分:1)
来自isAnchoredToAnnotation的Mapbox API文档:
一个布尔值,指示是否应将标注视图锚定到相应的注释。您可以通过覆盖 - [UIView setCenter:]来调整标注视图的精确位置。如果未实现此可选属性,则callout视图将不会锚定到注释。
在Swift中:myView.center =
希望这会有所帮助。
编辑: -
请查看Mapbox网站上的this example,其中介绍了如何实现可拖动注释。有趣的部分是setDragState
方法,其中测试了拖动状态(MGLAnnotationViewDragState
)。我建议在.dragging
案例中实施标注中心坐标更新,其方式与实施startDragging()
和endDragging()
功能的方式类似。