我试图通过的属性设置来显示用户的当前位置MKMapView 即setShowsUserLocation到YES.默认情况下,当应用程序开始更新用户位置时,iPhone屏幕左上方会出现一个箭头.但是在显示当前位置后,箭头应该消失,但只要应用程序正在运行,它仍然存在,这意味着应用程序仍处于静止状态在后台更新位置?那我怎么能停止更新当前位置?我已经实现了立即调用的委托..
Cyr*_*roy 16
如果地图可见且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];
}
Run Code Online (Sandbox Code Playgroud)
然后在此通知调用的方法中,更改有关userLocation以下内容的地图视图属性:
- (void)appToBackground{
[mapview setShowsUserLocation:NO];
}
Run Code Online (Sandbox Code Playgroud)
和
- (void)appReturnsActive{
[mapview setShowsUserLocation:YES];
}
Run Code Online (Sandbox Code Playgroud)
通过在那里设置断点并返回主屏幕来检查是否确实调用了这些方法.
| 归档时间: |
|
| 查看次数: |
14939 次 |
| 最近记录: |