(Re:Mapbox for Swift)我使用Mapbox网站(https://www.mapbox.com/ios-sdk/examples/custom-callout/)上的示例实现了一个自定义的标注视图。当注释靠近屏幕边缘时,默认标注视图将相应地调整其x值位置,以使标注完全适合视图。可以在自定义标注视图中复制此功能的一种方法是在设置self
(标注视图本身)的框架时应用调整(如果需要):
self.frame = CGRect(x: frameOriginX + adjustmentX, y: frameOriginY, width: frameWidth, height: frameHeight)
在当前的callout委托方法中:
func presentCallout(from rect: CGRect, in view: UIView, constrainedTo constrainedView: UIView, animated: Bool)
但是,自定义标注在执行此操作时,会在用户开始平移(或甚至触摸地图或其他注释)时将其位置恢复到rect
(注释视图)上方的中心位置。但是,在默认标注视图中,当用户平移地图时,应用于标注视图的调整仍然存在。
因此,如何正确调整自定义标注视图的x值位置,并在用户平移地图时将其保留?
答案 0 :(得分:0)
当用户平移地图时,会重新绘制标注视图。您必须覆盖自定义标注的draw
功能,才能在每次重绘时调整x位置。