显示当前位置 MKMapView?

我正在尝试显示用户的当前位置,设置属性
MKMapView

, IE
setShowsUserLocation


YES

. 默认情况下,箭头显示在屏幕的左上角 iPhone, 当应用程序开始更新用户的位置时。 但在显示当前位置后,箭头应该消失,但它仍然存在,直到应用程序工作,这意味着应用程序仍会更新背景中的位置? 那么我如何停止更新当前位置? 我实施了一个立即调用的委托..
已邀请:

龙天

赞同来自:

如果地图是可见的和事项 showUserLocation, 平等的 YES, 它继续在后台更新。

当视图消失或当应用程序切换到后台模式时,您需要删除此设置。 最佳方法可能是注册 viewController, 接收通知
UIApplicationDidEnterBackgroundNotification


UIApplicationDidBecomeActiveNotification

.


- /void/viewDidLoad{
[super viewDidLoad];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector/appToBackground/ name:UIApplicationDidEnterBackgroundNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector/appReturnsActive/ name:UIApplicationDidBecomeActiveNotification object:nil];
}


然后在该通知调用的方法中,更改地图相对的显示属性
userLocation

:


- /void/appToBackground{
[mapview setShowsUserLocation:NO];
}





- /void/appReturnsActive{
[mapview setShowsUserLocation:YES];
}


确保通过设置停止点并返回主屏幕来确保这些方法。

龙天

赞同来自:

我同意Michael Curnoan,我几乎确定在里面
MKMapView

有一种种族的条件 .


MKMapView

, 看起来像试图删除
userLocationAnnotation

/蓝点/ 一旦他理解他已经失去了对位置服务的访问权限。

但是,这似乎没有受到保护,如果开发人员也发出问题
[mapView setShowsUserLocation:NO]

, 由于内部流之间的比赛,他很可能会发生故障。
MKMapView

, 试图删除
userLocationAnnotation

, 和线程导致
setShowsUserLocation:NO

.

三叔

赞同来自:

您可以通过向Location Manager发送消息来停止更新位置
[self.locationManager stopUpdatingLocation];


至于您的案例,您是否尝试停止显示用户的位置?

要回复问题请先登录注册