Gam*_*Dev 2 mkmapview ios android-mapview
我正在从我的mainviewcontroller按下视图贴图按钮时加载mapviewcontroller:
- (IBAction)mapButton:(id)sender {
MapKitDisplayViewController *mapKitDisplayView = [[MapKitDisplayViewController alloc] init];
[self presentModalViewController:mapKitDisplayView animated:YES];
[mapKitDisplayView release]; mapKitDisplayView = nil;
}
Run Code Online (Sandbox Code Playgroud)
在启动此地图视图时,将调用此方法,该方法可正确缩放到用户位置:
- (void)mapView:(MKMapView *)myMapView didUpdateUserLocation:(MKUserLocation *)userLocation
{
myMapView.showsUserLocation = YES;
NSLog(@"didUpdateUserLocation = '%@'", userLocation);
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance([userLocation coordinate], 20000, 20000);
[myMapView setRegion:region animated:YES];
}
Run Code Online (Sandbox Code Playgroud)
我在这个屏幕上有一个完成按钮,可以解除这个视图:
- (IBAction)mapDoneButton:(id)sender
{
[self dismissModalViewControllerAnimated:YES];
}
Run Code Online (Sandbox Code Playgroud)
在此阶段,用户将被带回主视图控制器,但是当我再次按下视图映射按钮时,永远不会调用didUpdateUserLocation方法!因此,地图视图缩小到默认值,并且不会像以前那样放大.
我怎样才能让它再次被召唤?
谢谢
MKMapView对象不会自动触发用户位置的更新.您需要通过设置激活搜索showsUserLocation = YES.然后,这将获取用户的位置,然后mapView:didUpdateUserLocation:调用委托方法.因此,请将此值设置为YESon viewWillAppear:,一旦您拥有了用户位置,就可以将其设置NO为停止跟踪用户.如果不这样做,它会定期更新用户位置并调用委托方法.如果不这样做,用户位置应该是不可靠的.
| 归档时间: |
|
| 查看次数: |
2685 次 |
| 最近记录: |