Ios 地图框详图索引在平移/缩放时移动。

Ios 地图框详图索引在平移/缩放时移动。,ios,swift,mapbox,Ios,Swift,Mapbox,我按照指南创建了自定义详图索引视图。我在自定义类中添加了两行: var dismissesAutomatically: Bool = false var isAnchoredToAnnotation: Bool = true 当需要在平移和缩放时保持详图索引视图的显示,并将其定位到注释时,这些功能似乎可以完成这项工作。但是,当用户平移或缩放时,标注似乎下降了约20个像素 点击注释但在平移/缩放之前的初始视图: 平移/缩放后立即查看: 来自iAnchoredToAnnotation的Mapbo

我按照指南创建了自定义详图索引视图。我在自定义类中添加了两行:

var dismissesAutomatically: Bool = false
var isAnchoredToAnnotation: Bool = true
当需要在平移和缩放时保持详图索引视图的显示,并将其定位到注释时,这些功能似乎可以完成这项工作。但是,当用户平移或缩放时,标注似乎下降了约20个像素

点击注释但在平移/缩放之前的初始视图:

平移/缩放后立即查看:


来自iAnchoredToAnnotation的Mapbox API文档:

一个布尔值,指示是否应将详图索引视图定位到相应的注释。可以通过替代-[UIView setCenter:]来调整详图索引视图的精确位置。如果未实现此可选属性,则详图索引视图将不会定位到注释

在Swift中是:
myView.center=

希望这有帮助

编辑:-
看看Mapbox网站上描述如何实现可拖动注释的内容。有趣的部分是在
setDragState
方法中测试拖动状态(一个
MGLAnnotationViewDragState
)。我建议在
案例中实现callout center坐标更新。拖动
的方式与他们实现
startDragging()
endDragging()
功能的方式类似。

我尝试在MGLMapViewDelegate中设置CustomCallout视图的中心,
calloutViewFor annotation
方法,但它似乎没有什么区别。我在答案中添加了更多信息。在拖动过程中,标注的位置需要不断更新,因此我引用了一个可能的解决方案。可能值得一问的是,为什么需要实现用户在正常地图使用过程中不希望看到的注释行为?用户习惯于在拖动时调用消失,而在再次删除注释时,您可以始终让它重新出现。