iphone缩放到mapkit上的用户位置

Sat*_*yam 11 iphone zoom mapkit

我正在使用地图套件并使用"showsUserLocation"显示用户的位置我使用以下代码缩放到用户的位置,但不缩放.它缩放到非洲的某个位置,尽管地图上的用户位置显示正确.

MKCoordinateRegion newRegion; 
MKUserLocation* usrLocation = mapView.userLocation; 
newRegion.center.latitude = usrLocation.location.coordinate.latitude; 
newRegion.center.longitude = usrLocation.location.coordinate.longitude;
newRegion.span.latitudeDelta = 20.0;
newRegion.span.longitudeDelta = 28.0; 
[self.mapView setRegion:newRegion animated:YES];
Run Code Online (Sandbox Code Playgroud)

为什么用户的位置正确显示而不是正确缩放.有人可以纠正我吗?

Tre*_*vor 26

首次实例化时,mapView.userLocation设置为非洲海岸(0,0)附近的位置.因此,我执行以下操作,这会导致在注释出现时进行缩放.当然,这只是一个例子:

- (void)mapView:(MKMapView *)mv didAddAnnotationViews:(NSArray *)views {
    for(MKAnnotationView *annotationView in views) {
        if(annotationView.annotation == mv.userLocation) {
            MKCoordinateRegion region;
            MKCoordinateSpan span;

            span.latitudeDelta=0.1;
            span.longitudeDelta=0.1; 

            CLLocationCoordinate2D location=mv.userLocation.coordinate;

            region.span=span;
            region.center=location;

            [mv setRegion:region animated:TRUE];
            [mv regionThatFits:region];
        }
    }
}
Run Code Online (Sandbox Code Playgroud)