MKMapView setRegion:animated:动画在iOS7上变得非常慢

时间:2013-12-29 02:17:20

标签: iphone objective-c animation ios7 mapkit

我正在尝试重新设置双击以放大并用两个手指点按以缩小地图,并且当我用两个手指点击缩小时,我有一些奇怪的动画慢度。 (我必须这样做,因为我将中心点固定在缩放上,这是默认的双击和两个手指敲击手势无法实现的)

当我处于接近的缩放级别时,这不是问题,但是一旦我达到城市缩放级别并且更远,动画需要很长时间。如果我在NO上将动画设置为setRegion,它会毫不拖延地跳到我想要的缩放级别,这让我相信加载更大的区域没有问题。

在viewDidLoad中,我设置了zoomEnabled = NO并添加了一个双指轻击手势识别器和双击手势识别器。 (双击手势识别器具有相同的问题)

我的双指点击代码就是这样:

- (void)mapTwoFingerTapped:(UITapGestureRecognizer *)doubleFingerTapRecognizer
{
  double zoomScale = 2;
  MKCoordinateSpan span = MKCoordinateSpanMake(self.map.region.span.latitudeDelta * zoomScale,
                                             self.map.region.span.longitudeDelta * zoomScale);

  [self.map setRegion:MKCoordinateRegionMake(self.map.region.center, span) animated:YES];
}

这意味着我所做的只是将纬度和经度加倍并设置新区域。导致动画减速的原因是什么?如何将动画恢复到正常速度?

编辑:我发现这只发生在iOS 7设备上。 iOS 6似乎没有受到影响。

1 个答案:

答案 0 :(得分:0)

仅仅基于一些经验,听起来你可能会从代码的其他部分开放动画块,影响setRegion:动画的持续时间。你能看一下从手势开始的其他一些代码吗?