在地图视图上缩放或平移时,如何防止自定义Mapbox标注自动隐藏

时间:2017-02-21 16:53:53

标签: ios swift mapbox

我遵循这篇文章Custom Call out

每次在Mapbox View上缩放或平移时,呼出都会自动隐藏!

如何防止这种行为?

由于

3 个答案:

答案 0 :(得分:2)

您需要向CustomCalloutView类添加两个类变量。在init方法之前添加这两行:

var dismissesAutomatically: Bool = false
var isAnchoredToAnnotation: Bool = true

这似乎解决了Callout被解雇的问题,并允许标注遵循注释。

但是,这会遇到一个新问题,每次平移/缩放地图时,标注似乎都会下降大约10个像素。我还在努力解决这个问题。我打开了另一个问题here,看看是否有人知道如何解决这个问题。

答案 1 :(得分:1)

如上所述,您需要添加:

let dismissesAutomatically: Bool = false
let isAnchoredToAnnotation: Bool = true

因此在平移时标注不会下降,您还需要添加:

override var center: CGPoint {
    set {
        var newCenter = newValue
        newCenter.y = newCenter.y - bounds.midY
        super.center = newCenter
    }
    get {
        return super.center
    }
}

答案 2 :(得分:0)

您能说出您使用的是哪个版本的Mapbox iOS SDK吗?应该为3.4.0修复此错误。如果您尚未使用SDK,可能需要尝试最新版本的SDK。