2012-12-28 78 views
2

我重寫我的水平圖像UIScrollView與平移手勢識別器來檢測用戶刷卡。iOS UIPanGestureRecognizer防止滾動

UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panGestureCaptured)]; 
[imgHorizontalScrollView addGestureRecognizer:panGesture]; 

我的問題是:有沒有辦法讓我重新imgHorizo​​ntalScrollView的泛手勢識別回到panGestureCaptured方法爲默認?我問的原因是因爲我重寫了這個手勢,一旦用戶滑動並且手勢被拾取,我就不再能夠在滾動視圖中滾動。我也嘗試刪除手勢,但這也阻止了我能夠滾動。

回答

6

嘗試UIGestureRecognizerDelegategestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:與滾動視圖的gestureRecognizer了由panGestureRecognizer

+0

我可以添加;您需要將您的視圖控制器設置爲'UIPanGestureRecognizer'的委託,顯然,將'gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:'設置爲'YES'的返回值:] – Priest

+0

當返回YES時,您仍然會得到醜陋的結果您的單元格子視圖(如果您使用它進行拖動)與「tableView」滾動一起進行平移。我想看看'tableView'是否有方向鎖定,然後停止識別器(如果不是這樣的話)(忽略垂直滾動) –

+0

噢...剛剛使用' - (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer'和如果水平滾動,則只返回「YES」。 –

0

嘗試設置

panGesture.cancelsTouchesInView = NO; 

如果不工作,你應該找到一種方法,你的手勢處理機更改爲scrollViewDidScroll:委託方法