Ios 要滑动并放大到效果的mapkit地图视图幻灯片?

Ios 要滑动并放大到效果的mapkit地图视图幻灯片?,ios,mapkit,core-location,Ios,Mapkit,Core Location,我是mapkit的新手,正在尝试添加“滑动/滑动和放大类型转换效果”,这是我在MkMapView的此类地图应用程序中经常看到的效果 例如,我可能通过触摸/挤压和缩放来查看、导航和缩放地图,然后单击“转到我的位置”,例如,它将滑动/滑动到我的位置,然后使用我设置的区域/视图大小缩小到我的位置,我想你可以称之为过渡效果。 这是怎么做到的?有没有一种方法可以做到这一点,或者您必须手动编程实现这一效果 目前,我会按“转到我的位置”按钮,它会转到我的当前位置,大小是我想要的,但在过渡类型中没有滑动/滑动/

我是mapkit的新手,正在尝试添加“滑动/滑动和放大类型转换效果”,这是我在MkMapView的此类地图应用程序中经常看到的效果

例如,我可能通过触摸/挤压和缩放来查看、导航和缩放地图,然后单击“转到我的位置”,例如,它将滑动/滑动到我的位置,然后使用我设置的区域/视图大小缩小到我的位置,我想你可以称之为过渡效果。 这是怎么做到的?有没有一种方法可以做到这一点,或者您必须手动编程实现这一效果

目前,我会按“转到我的位置”按钮,它会转到我的当前位置,大小是我想要的,但在过渡类型中没有滑动/滑动/缩放效果。 任何帮助都会很好

- (IBAction)zoomToCurrentLocation:(id)sender { 

    float spanX = 0.00725;
    float spanY = 0.00725;

    MKCoordinateRegion region;
    region.center.latitude = self.mapView.userLocation.coordinate.latitude;
    region.center.longitude = self.mapView.userLocation.coordinate.longitude;
    region.span.latitudeDelta = spanX;
    region.span.longitudeDelta = spanY;

    [self.mapView setRegion:region animated:YES];

}

动画序列如下所示:

在该动画中,第一个动画块将滑动/滑动映射到指定的位置(比如用户位置)

然后在完成块中:

另一个动画将放大/缩小到您的位置。根据需要更改适当的值

- (void) showUserLocation {
    [UIView animateWithDuration:1.5 animations:^{

        [self.mapView setCenterCoordinate:self.mapView.userLocation.coordinate];

    } completion:^(BOOL finished) {
        [UIView animateWithDuration:1.5 animations:^{
            MKCoordinateSpan span;
            span.latitudeDelta  = 1;
            span.longitudeDelta = 1;

            MKCoordinateRegion region;
            region.span = span;
            region.center = self.mapView.userLocation.coordinate;
            [self.mapView setRegion:region animated:YES];
        }];
    }];
}

很酷,谢谢@Kampai,它让我获得了我想要的动画效果,但不是水平/垂直滑动到位置的部分。例如,假设我的地图视图显示的是中国,而我当前的位置在美国,我希望视图从中国滑到美国,然后进行缩小部分,如您提供的内容等。我如何做到这一点?我尝试了您编辑的代码@Kampai,但没有运气,它仍然直接跳到用户位置(没有从国家到国家的地图幻灯片效果等)它从放大级别开始,然后在动画结束后持续时间:1.5缩小到国家/地区视图我又添加了一个动画块来显示要缩小到的动画,我已经尝试了这段代码,它工作得非常完美。在调用此方法之前,请检查您在调用此方法时是否没有为map设置任何区域或span值(您不需要)。这太棒了@Kampai非常感谢是的,我在我的-(iAction)zoomToCurrentLocation:(id)sender方法中设置了区域/span值,我一拿出它,它就工作得很好!我现在明白了,这两个动画块很有意义,再次感谢!