如何显示 MapKit 指南针?
How to show MapKit compass?
目前只有在用户应用旋转手势时才会显示指南针。否则罗盘是隐藏的。
不过如果能实现我下面的两个愿望就好了!
- 是否可以一直显示罗盘?
- 如何使用Swift显示/隐藏罗盘视图?
您可以在 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 的早期版本,没有简单的解决方案。我看到了涉及 的建议,试图找到罗盘视图,但结果似乎喜忧参半。
目前只有在用户应用旋转手势时才会显示指南针。否则罗盘是隐藏的。
不过如果能实现我下面的两个愿望就好了!
- 是否可以一直显示罗盘?
- 如何使用Swift显示/隐藏罗盘视图?
您可以在 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 的早期版本,没有简单的解决方案。我看到了涉及