平移时,MKMapView不会调用regionDidChangeAnimated

我有一个MKMapView的应用程序和每当地图更改位置(在regionDidChangeAnimated)时调用的代码。 当应用程序最初加载时,regionDidChangeAnimated将在平底锅(滑动),夹点,水龙头和button上调用,以显式更新地图坐标。 加载其他视图并返回到地图后,只会调用regionDidChangeAnimated以用于点击和显式更新地图的button。 平移地图并捏住不再调用regionDidChangeAnimated。

我看过这个没有解决这个问题的stackoverflowpost 。 devforums和iphonedevsdk上的论坛post也没有工作。 有谁知道是什么原因造成这个问题? 我没有添加任何子视图MKMapView。

我不想这样做,但似乎到目前为止没有问题(从devforums邮政有问题):

将UIGestureRecognizerDelegate添加到您的标题。 现在添加一个检查版本号…如果我们在iOS 4上,我们可以这样做:

if (NSFoundationVersionNumber >= 678.58){ UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinchGestureCaptured:)]; pinch.delegate = self; [mapView addGestureRecognizer:pinch]; [pinch release]; UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panGestureCaptured:)]; pan.delegate = self; [mapView addGestureRecognizer:pan]; [pan release]; } 

添加委托方法来处理手势:

 #pragma mark - #pragma mark Gesture Recognizers - (void)pinchGestureCaptured:(UIPinchGestureRecognizer*)gesture{ if(UIGestureRecognizerStateEnded == gesture.state){ ///////////////////[self doWhatYouWouldDoInRegionDidChangeAnimated]; } } - (void)panGestureCaptured:(UIPanGestureRecognizer*)gesture{ if(UIGestureRecognizerStateEnded == gesture.state){ ///////////////////[self doWhatYouWouldDoInRegionDidChangeAnimated]; } } -(BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer{ return YES; } -(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch: (UITouch *)touch{ return YES; } - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{ return YES; }