为什么我的用户位置始终位于中心位置?

时间:2015-02-13 10:54:46

标签: ios objective-c mapkit

我的应用程序中有一张地图,我在地图打开时设置了中心用户位置。 我使用过这段代码:

 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];
}

但是当我移动地图时,它又回到了用户位置。 如何在不关心用户位置的情况下自由移动到我的地图中?

1 个答案:

答案 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