在做百度地图的时候,遇到一个问题,那就是每次移动百度地图时,问题只能慢慢地移动一点点的距离,这让人感到很难受啊,
如果开始检查百度地图的API是否是设置了关闭移动:
_mapView.scrollEnabled = YES;
结果我已经设置为打开了,也不好使,于是继续查,
结果发现是由于手势的冲突造成的。
由于项目中使用了MLNavigationController这个库,UIPanGestureRecognizer导致了冲突。
于是我就追加了两个方法:
// 解决手势冲突方案 // 在viewDidLoad或viewWillAppear中调用 - (void)removeGestureAction; // 在viewWillDisappear方法中调用 - (void)addGestureAction;
- (void)addGest { self.recognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(paningGestureReceive:)]; [self.recognizer delaysTouchesBegan]; [self.view addGestureRecognizer:self.recognizer]; } // 解决手势冲突方案 - (void)removeGestureAction { [self.view removeGestureRecognizer:self.recognizer]; } - (void)addGestureAction { [self addGest]; }
如此就可以解决我的问题了。
如果有遇到同样类似的问题的朋友,请首先检查地图所有的各级的view中有多少个手势,是否有相同类型的手势,如果有,就是手势的冲突导致的,
那么就需要自己处理了。
时间: 2024-09-30 19:33:17