这令我很沮丧!!!
大部分时间都会调用它,但它会停止响应压缩。它将在屏幕旋转和双击时调用。不要紧张!
帮助!
答案 0 :(得分:7)
我正在研究一些具有相同问题的代码,结果发现问题是UIGestureRecognizer
的子视图已被添加为MKMapView
的子视图,有时,它们会导致一些委托不要射击的方法。
因此,请确保您没有向MKMapView
添加子视图或任何内容。
希望这有帮助。
答案 1 :(得分:3)
我在代码中移动地图,然后我需要调用
[mapView setNeedsDisplay];
!后
答案 2 :(得分:1)
我认为这个问题可能与多线程有关。
今天早上我遇到了同样的问题。我使用手势识别器捕获长按事件,然后将一个图钉添加到mapview。如果运作良好但经过几轮后,该区域确实改变了方法停止被调用。
我在这里尝试了一些解决方案但没有效果。然后我回想起之前我遇到的一些其他问题,即多线程性质的操作。所以我尝试将控制mapview的代码在长按操作中移动到在主线程中运行的块。问题解决了。
答案 3 :(得分:0)
我设法通过在touchesBeganCallback中禁用手势识别器来解决这个问题
self.tapInterceptor.touchesBeganCallback = ^(NSSet *touches, UIEvent *event) {
self.tapInterceptor.enabled = NO;
// do something
};
并在regionDidChangeAnimated委托方法
中重新启用它- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated {
self.tapInterceptor.enabled = YES;
// do something
}
答案 4 :(得分:0)
每当点击手势识别器添加到mapview,设置
recognizer.cancelsTouchesInView = NO;
如果您的业务逻辑允许在mapview上触摸进行双重处理(通过MKMapView和手势识别器),则可以解决问题 最近干扰该地区[Will,Did] ChangeAnimated:)