目前只有当用户应用旋转手势时, compass 才会显示。否则 compass 是隐藏的。
不过如果我下面的两个愿望能实现就好了!
- 是否可以一直显示 compass ?
- 如何使用 Swift 显示/隐藏 compass View ?
最佳答案
您可以在 iOS 11 中使用新的 MKCompassButton
轻松完成此操作类(class)。
您需要创建一个 MKCompassButton
实例并将其添加到您的 map View 中。然后,您可以将其 compassVisibility
属性设置为以下之一:
.visible
- 始终可见.never
- 从不可见.adaptive
- 只有本地图从北/上方向旋转时, compass 才可见。
如果您在属性中保留对 compass 的引用,您可以根据需要更改其可见性:
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 的建议尝试找到 compass View ,但结果似乎喜忧参半。
关于ios - 如何显示 MapKit compass ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48713377/