(Re: Mapbox )我使用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)
但是,当用户开始摇摄(甚至触摸地图或其他注释)时,自定义标注将恢复到rect
(注释视图)上方的中心位置。但是,在默认的callout视图中,当用户平移映射时,应用于callout视图的调整将保持不变。
因此,您如何正确地调整自定义标注视图的x值位置,并在用户平移地图时保留它?
发布于 2017-09-19 19:42:21
当用户平移地图时,标注视图将被重新绘制。每次重新绘制x位置时,您都必须重写自定义标注的draw
函数来调整x位置。
https://stackoverflow.com/questions/46283253
复制相似问题