2012-05-21 125 views
0

我有一个UIPageViewController,每个页面包含页面上的多个UIViews,每个UIView允许在长按手势后的Pan手势,我在contentVC中使用下面的委托,但它出现了pageVC不关心我的限制,它继续翻页!当我在平移时,是否必须做任何事情来禁用翻页? (不得已将设置在PageVC像canTurn的变量,并将其设置为NO,而平移是在行动....禁用UIPageViewController手势识别器,同时处理longPressed手势

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{ 

    if ([gestureRecognizer isKindOfClass:[UILongPressGestureRecognizer class]] && 
     [otherGestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]) { 
     return YES; 
    } 
    return NO; 
} 

回答

1

你应该在PageVC添加-gestureRecognizer:shouldReceiveTouch:方法本身,或如果你不想要的PageVC自身添加它,你可以让一个委托处理它

像:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch 
{ 
    if(someCase) 
    { 
     return yes; 
    } 

    return no; 
} 

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch 
{ 
    return [delegate shouldHandle:.....]; 
} 
+0

什么PageVC? PageViewController的子类? –

+0

是的UIPageViewController的子类 –

+2

这是永远不会被调用的。我应该首先设置gestureRecoqnizer委托吗? –