【发布时间】:2014-07-18 20:41:55
【问题描述】:
我有一个包含 MKMapView 的 UIViewController(实际上,它包含一个包含 MKMapView 的全屏容器,但它应该没有任何影响)
我实现了一个 UIScreenEdgePanGestureRecognizer(显示抽屉),如下所示:
self.swipeRight = [[UIScreenEdgePanGestureRecognizer alloc] initWithTarget:self action:@selector(handleEdgeGesture:)];
[self.swipeRight setEdges:UIRectEdgeLeft];
[self.swipeRight setDelegate:self];
[self.view addGestureRecognizer:self.swipeRight];
为了让它工作,我必须添加以下方法(返回 YES):
(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer;
但是地图在抽屉出现的同时也在移动!
我尝试了各种技巧来阻止它,但无法...(例如,我尝试了shouldBeRequiredToFailByGestureRecognizer或requireGestureRecognizerToFail)
知道当手势是来自 LeftEdge 的 ScreenEdgePan 时如何防止 MapView 移动吗?
【问题讨论】:
-
我相信这应该回答你的问题:stackoverflow.com/a/11954355/1244184
-
您是否尝试将手势识别器添加到地图视图而不是容器? - 只是预感
-
@JonathonHibbard:我看到了,但是没有......这意味着我自己移动地图而不是让 mapview 来做,而且它的性能很糟糕
-
@WarrenBurton:这不是一个选项......但我尝试了测试,结果是一样的
-
该死的太糟糕了——我会在今晚晚些时候检查一下,如果我能找到其他东西给你。我知道我以前见过这个问题
标签: ios objective-c mkmapview uigesturerecognizer