如何显示 MapKit 指南针?

How to show MapKit compass?

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


不过如果能实现我下面的两个愿望就好了!

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

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

  • .visible - 始终可见
  • .never - 从不可见
  • .adaptive - 指南针仅在地图从 North/up 方向旋转时可见。

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

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 的早期版本,没有简单的解决方案。我看到了涉及 的建议,试图找到罗盘视图,但结果似乎喜忧参半。