我在我的項目中使用MMDrawerController和GoogleMap的api。 我想要一個帶有兩個左右滑出導航欄的GoogleMap視圖,它們僅在分別從左側和右側20px內滑動時出現。
一切正常,除了: 當我刷上benzel,這是20像素,MapView類的財產:使GoogleMap在使用MMDrawerController時保持其位置
[drawerController
setOpenDrawerGestureModeMask:MMOpenDrawerGestureModeBezelPanningCenterView];
這也使得的GoogleMap的觀點響應平移手勢太,並使其揮筆遠。
緊密手勢
[drawerController setCloseDrawerGestureModeMask:MMCloseDrawerGestureModeAll];
與
[drawerController
setCenterHiddenInteractionMode:MMDrawerOpenCenterInteractionModeNone];
我怎樣才能讓滑出抽屜時,地圖上仍然保持正常工作?
謝謝!
----------------
答:(計算器不讓我回答我的問題,因爲它是小於8小時前發佈)
我找到了解決方案。積分爲https://github.com/kcharwood。我只是修改他的一些代碼。
- (void)viewDidLoad
{
self.view = _mapView;
[[self.view.subviews[0] gestureRecognizers] enumerateObjectsUsingBlock:^(UIGestureRecognizer * gesture, NSUInteger idx, BOOL *stop){
[gesture setDelegate:self];
}];
}
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{
CGPoint location = [touch locationInView:self.view];
CGRect boundingRect = self.view.bounds;
if([gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]){
boundingRect.origin.x+=20;
boundingRect.size.width-=40;
}
return CGRectContainsPoint(boundingRect, location);
}
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{
return YES;
}
注:堅持如此gestureRecognizer: shouldRecognizeSimultaneouslyWithGestureRecognizer:
將可用。
20和40表示視圖的左側和右側區域。如果平移手勢在這些區域內開始位置,則地圖不會移動。 如果只想左:將其更改爲20和20 如果你想他們更小,如10和20,記得在MMDrawerController.m改變CGFloat const MMDrawerBezelRange = 20.0f;
(默認值)10