【发布时间】: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 值位置并在用户平移地图时保留它?
【问题讨论】: