如何显示MapKit指南针?

时间:2018-02-09 20:09:41

标签: ios swift mapkit compass

目前只有当用户应用旋转手势时才会显示指南针。否则罗盘就会被隐藏。

img1

但如果我的下面两个愿望得以实现,那就太好了!

  • 是否可以始终显示指南针?
  • 如何使用Swift显示/隐藏指南针视图?

1 个答案:

答案 0 :(得分:3)

使用新的MKCompassButton类,您可以在iOS 11中轻松完成此操作。

您需要创建MKCompassButton的实例并将其添加到地图视图中。然后,您可以将其compassVisibility属性设置为以下之一:

  • .visible - 始终可见
  • .never - 永不可见
  • .adaptive - 仅当地图远离北/上方向旋转时,才会显示指南针。

如果您在属性中保留对指南针的引用,则可以根据需要更改其可见性:

mapview.showsCompass = false  // Hide built-in compass

compassButton = MKCompassButton(mapView: mapview)   // Make a new compass
compassButton.compassVisibility = .visible          // Make it visible

mapview.addSubview(compassButton) // Add it to the view

// Position it as required

compassButton.translatesAutoresizingMaskIntoConstraints = false
compassButton.trailingAnchor.constraint(equalTo: mapview.trailingAnchor, constant: -12).isActive = true
compassButton.topAnchor.constraint(equalTo: mapview.topAnchor, constant: 12).isActive = true

不幸的是,对于iOS的早期版本,没有简单的解决方案。我已经看到了looking through the map view's subviews试图找到罗盘视图的建议,但似乎结果好坏参半。