問題描述: scrollview上添加了百度地圖,百度地圖的拖動(dòng)與scrollview的上下拖動(dòng)同時(shí)發(fā)生,左右拖動(dòng)地圖可以正常顯示,但是上下拖動(dòng)地圖的時(shí)候,scrollview 也同時(shí)上下移動(dòng).類似于這樣
百度地圖bug.gif
#****解決方法****:
使用UIGestureRecognizerDelegate 代理方法
給scrollview 添加一個(gè)手勢(shì)
UIGestureRecognizer *gestur = [[UIGestureRecognizer alloc]init];
gestur.delegate=self;
[self.scrollview addGestureRecognizer:gestur];
- 給百度地圖添加手勢(shì)
_vMap = [[BMKMapView alloc] initWithFrame:CGRectMake(15, 0, SCREEN_WIDTH - 30, 200)];
/** 注意百度地圖的縮放拖動(dòng)要打開*/
_vMap.zoomEnabled = YES;
_vMap.scrollEnabled = YES;
_vMap.delegate = self;
[vContent addSubview:_vMap];
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onClickBtnLoction:)];
tap.delegate = self;
vContent.userInteractionEnabled = YES;
[_vMap addGestureRecognizer:tap];
- 實(shí)現(xiàn)代理方法
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{
//在這里判斷是百度地圖的view 既可以實(shí)現(xiàn)手勢(shì)拖動(dòng) scrollview 的滾動(dòng)關(guān)閉
if ([gestureRecognizer.view isKindOfClass:[BMKMapView class]] ){
self.scrollview.scrollEnabled = NO;
return YES;
}else{
self.scrollview.scrollEnabled = YES;
return NO;
}
}
實(shí)現(xiàn)后的效果
百度地圖bug修復(fù).gif