Iphone &引用;“显示当前位置”;按钮(如Maps.app)

Iphone &引用;“显示当前位置”;按钮(如Maps.app),iphone,mkmapview,core-location,Iphone,Mkmapview,Core Location,我声明我是初学者,所以请不要错过任何一步 我使用该代码显示并“跳转”到用户位置: - (void)mapView:(MKMapView *)mv didAddAnnotationViews:(NSArray *)views { for(MKAnnotationView *annotationView in views) { if(annotationView.annotation == mv.userLocation) { MKCoordinateRegion regio

我声明我是初学者,所以请不要错过任何一步 我使用该代码显示并“跳转”到用户位置:

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

        span.latitudeDelta=0.002;
        span.longitudeDelta=0.002; 

        CLLocationCoordinate2D location=mv.userLocation.coordinate;

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

        [mv setRegion:region animated:TRUE];
        [mv regionThatFits:region];
    }
}

但我想在我按下按钮的时候请求。。我怎么做?(记住:我是初学者!)。提前谢谢

您所需要做的不是调用上面的setRegion,而是在按下按钮时调用它。或者,您可以使用[locationManager startUpdatingLocation][locationManager StopUpdateLocation]打开或关闭地图更新功能,但保持此功能会消耗电池电量,因此请谨慎。

我尝试使用此代码,但仍然无法工作(按下按钮时会冻结)<代码>-(iAction)goToLocation{MKMapView*mapView;MKUserLocation*myLocation=[mapView userLocation];CLLocationCoordinate2D坐标=[[myLocation location]坐标];MKCoordinateRegion region=MKCoordinateRegionMakeWithDistance(coord,350350);[mapView设置区域:区域动画:是];[UIView beginAnimations:nil context:NULL];[UIView setAnimationDuration:1];[UIView commitAnimations];}取消对beginAnimations、setAnimationDuration和Committeanimations的调用。您已经告诉setRegion调用animate,它会比您在这里所做的做得更好。如果它仍然存在问题,请使用调试器逐步执行,并查看它冻结在哪一行。您可能还希望将这些行添加到其中:region.span=span;region.center=location;