[英]UIPanGestureRecognizer conflicts with UIPinchGestureRecognizer's superview
[英]UIPanGestureRecognizer conflicts
我正在將UIPanGestureRecognizer添加到我的視圖控制器中的一個自定義視圖。
我還將MFSideMenu用於滑動菜單,該菜單在其框架中向主NavigationViewController.view添加了UIPanGestureRecognizer。
有時,當我在自定義視圖中平移時,平移實際上發生在MavigationViewController.view中。
導致此問題的原因是MFSideMenu實現中的以下代碼:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
if([gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]) {
if([gestureRecognizer.view isEqual:self.rootViewController.view] &&
[self rootViewControllerPanEnabled])
{
return YES;
}
return NO;
}
}
有時(在5-10中,有1個)是適當的,此方法返回YES,在平移視圖本身時應返回NO!
問題是打開了滑動菜單,而不是平移自定義視圖。
我已經盡了我所能想象的一切-這種行為根本沒有任何意義。
更新:僅在iOS 7中存在問題-請在下面的答案中查看該修復程序。
找到了解決方案; 顯然問題出在iOS 7中。
要修復它,只需在視圖控制器中實現UIGestureRecognizerDelegate
並實現:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldBeRequiredToFailByGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
return YES;
}
這解決了我的隨機問題!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.