点击按钮时SwiftUI获取用户的位置

Posted

技术标签:

【中文标题】点击按钮时SwiftUI获取用户的位置【英文标题】:SwiftUI Get User's Location When Button is Tapped 【发布时间】:2020-05-04 01:46:19 【问题描述】:

刚接触 Swift/SwiftUI,但目前正在使用 SwiftUI 开发应用程序并且已经到了一个停止点,因为我终其一生都无法弄清楚如何在用户点击按钮时简单地获取他们的当前位置。当然这不可能这么难?!任何帮助将不胜感激!

我真正追求的只是让用户在点击按钮时最终能够在地图上(使用MapKit)在他们当前的位置放置一个图钉。

【问题讨论】:

假设您已获得授权并且用户已允许您的应用使用定位服务,请调用CLLocationManagerrequestLocation() 方法。 这项工作必须在你的模型中完成 - 有一个你可以在点击按钮时调用的函数;它可以调用requestLocation。让位置管理器的委托方法更新模型中已发布的位置属性。您的视图可以使用此更新后的属性将注释添加到地图 我在研究过程中发现了这一点,但我不知道如何使用 SwiftUI 实现 ViewController。 hackingwithswift.com/example-code/location/… 我一直在学习 SwiftUI 的教程,但这是我第一次看到任何带有 ViewController 的东西。 我不知道您是如何在 SwiftUI 上下文中从该链接实现上述代码的,更不用说在按钮的操作中了。 使用 SwiftUI 将是一个额外的挑战,因为您需要使用托管视图将 MKMapView 放入您的 SwiftUI 视图中。一旦你完成了,它应该非常简单。您无需担心视图控制器。您只需要更新您的模型并确保您的地图视图使用模型添加注释。 【参考方案1】:

使用 CLLocationManager,您可以调用 requestLocation() 方法...您可以在按下按钮时使用 @IBAction,只需在此 IBAction 中调用 requestLocation() 方法!我希望这会有所帮助!

【讨论】:

PS:请确保用户已允许您的应用使用定位服务,否则将无法正常工作!

以上是关于点击按钮时SwiftUI获取用户的位置的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI 上的按钮点击调用 MKMapView.setRegion

如何在swiftUI中添加返回用户位置按钮?

使用 Combine 和 SwiftUI 对点击的按钮进行更改

SwiftUI - 应用程序进入前台时获取位置和调用函数

在 macOS SwiftUI 中模拟按钮点击?

SwiftUI - 如何获取新创建的按钮的确切中心坐标/位置