【发布时间】:2013-03-29 04:54:39
【问题描述】:
我目前正在开发一个使用 MKMapView 控件的应用程序。假设通过蓝点显示用户的位置(如地图应用程序),但是当应用程序首次安装在设备上然后启动时,您会提示要求用户授权,但一旦接受,用户的地图上不显示位置,返回的坐标为 0.0 ; 0.0.
然后,我关闭应用程序,将其从多任务处理中移除并重新启动,位置显示正确并返回正确的坐标。
我还使用 CoreLocation 来计算两点之间的距离并获取航向,并为提示设置了一条自定义消息,即显示应用程序的两次全新安装中的一个(我想知道为什么),我并不真正关心最后一个问题,但了解这个细节可能会有所帮助。
我应该怎么做才能在应用首次启动时显示蓝色?
此致,
最大
【问题讨论】:
-
更新用户位置可能需要一些时间。它使用核心位置来更新用户的当前位置。这可能会调用 -[CLLocationManager startUpdatingLocation] 或一些类似的方法来更新当前位置。这些方法立即返回并设置回调,以便在找到位置时调用它。要停止蓝色,请设置一些选择器在一定延迟后调用。
-
嗯,我也是这么想的,除了我放了一个小时,没有任何改变,我在iOS 6上尝试了3GS同样的问题,但在模拟器上运行良好。
-
检查应用程序的位置更新是否在设置中被禁用。否则,它应该很简单,根本不需要编码。只需在情节提要中拖动地图视图并检查显示用户位置选项即可。
-
现在我意识到了。似乎这是某种错误。我想您必须将委托设置为地图,并在收到 didUpdateLocation 委托时自己添加注释。否则,使用核心位置更新位置,然后添加注释。
-
好吧,这似乎也是唯一的方法,CoreLocation 正在返回给我很好的数据,所以我将尝试将其实现为仅在首次启动时替代 MKMapCiew ShowUserLocation,我唯一关心的是看看标题会发生什么,因为我使用了“MKUserTrackingModeFollowWithHeading”方法。
标签: objective-c cocoa-touch ios5 mkmapview core-location