ios - 如何显示 MapKit compass ?

标签 ios swift mapkit compass

目前只有当用户应用旋转手势时, compass 才会显示。否则 compass 是隐藏的。

img1


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

  • 是否可以一直显示 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/

相关文章:

ios - Mapkit中如何增加userLocation标注的半径

ios - Swift - 如何在 if 语句之外访问常量

iOS - NSNotification 无效选择器

ios - 当我将一个类从 iOS 7 导入到 iOS 8 时出错

ios - 当 JSON 输入表示 Codable 类型的多个子类时使用 Codable

swift - Auth.auth().currentUser?.reload() 不刷新 currentUser.isEmailVerified

swift - 在swift中设置facebook登录

iOS 通过 MKAnnotation 禁用触摸

iphone - 如何在mapkit中获取以像素为单位的米?

ios - 更改 UIImagePickerController 的语言