我对地图和代表有疑问。我正在做一本书的练习,它告诉我要使用该方法
- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
{
//CLLocationCoordinate2D loc = [userLocation coordinate];
self.coord2D = [userLocation coordinate];
//MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(loc, 250, 250);
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(self.coord2D, 250, 250);
[worldView setRegion:region animated:YES];
}
这意味着每次我从自己的位置移动手机时,手机都会在屏幕上显示自己。我还创建了一个调用此方法的按钮。因此,如果我滚动地图,就能看到自己在哪里。
问题是:如果我在汽车上并想滚动地图,这将成为一项艰巨的任务,因为在我更改位置时始终会调用此方法。
还有其他方法吗,或者我可以选择激活和停用代理?
提前致谢。
最佳答案
据我所知,这很简单。只需有一个按钮即可激活和停用它。
- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
{
//CLLocationCoordinate2D loc = [userLocation coordinate];
self.coord2D = [userLocation coordinate];
if (self.trackUserLocation) {
//MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(loc, 250, 250);
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(self.coord2D, 250, 250);
[worldView setRegion:region animated:YES];
}
}
物业:
@property (nonatomic, assign) BOOL trackUserLocation;
按钮动作:
self.trackUserLocation = !self.trackUserLocation;
您不必为此加倍努力。
关于ios - MKMapKit iOS5。我可以在需要时设置所需的委托(delegate)吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11336599/