目前指南针只有在用户应用旋转手势时才会显示。否则指南针是隐藏的。
不过要是能实现我下面的两个愿望就好了!
通过使用新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
Run Code Online (Sandbox Code Playgroud)
不幸的是,对于之前的 iOS 版本,没有简单的解决方案。我已经看到一些建议,涉及查看地图视图的子视图以尝试找到指南针视图,但结果似乎好坏参半。