【问题标题】:How to override repositioning of callout view in Mapbox when panning?平移时如何覆盖 Mapbox 中标注视图的重新定位?
【发布时间】:2017-09-18 15:38:44
【问题描述】:

(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)


在当前的标注委托方法中:

func presentCallout(from rect: CGRect, in view: UIView, constrainedTo constrainedView: UIView, animated: Bool)


但是,custom 标注在执行此操作时,将在用户开始平移(甚至触摸地图或其他注释)时将其位置恢复到rect(注释视图)上方的中心。然而,在默认标注视图中,当用户平移地图时,应用到标注视图的调整仍然存在。

因此,您如何正确调整自定义标注视图的 x 值位置并在用户平移地图时保留它?

【问题讨论】:

    标签: ios mapbox


    【解决方案1】:

    当用户平移地图时,标注视图会重新绘制。您必须覆盖自定义标注的 draw 函数,以在每次重绘时调整 x 位置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-02
      • 2021-11-10
      相关资源
      最近更新 更多