我的应用程序中有一张地图,我在地图打开时设置了中心用户位置。 我使用过这段代码:
map.delegate=Self;
......
-(void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation {
MKCoordinateRegion mapRegion;
mapRegion.center = self.mapView.userLocation.coordinate;
mapRegion.span = MKCoordinateSpanMake(0.5, 0.5); //Zoom distance
[self.mapView setRegion:mapRegion animated: YES];
}
但是当我移动地图时,它又回到了用户位置。 如何在不关心用户位置的情况下自由移动到我的地图中?
答案 0 :(得分:2)
这是因为您每次用户的位置更改时都会重置位置。你应该只做一次,例如
-(void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation {
if (self.centerToUserLocation)
{
MKCoordinateRegion mapRegion;
mapRegion.center = self.mapView.userLocation.coordinate;
mapRegion.span = MKCoordinateSpanMake(0.5, 0.5); //Zoom distance
[self.mapView setRegion:mapRegion animated: YES];
self.centerToUserLocation = NO;
}
}
其中centerToUserLocation
类似于@property (nonatomic) BOOL centerToUserLocation