答案 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试图找到罗盘视图的建议,但似乎结果好坏参半。