我有一個靜態單元格的表。其中一個單元有一個視圖,上面有一個平移手勢識別器。UIGestureRecognizer阻止tableview滾動
當我向下滾動我的tableview,當我到達與移動手勢識別器視圖中的單元格,滾動似乎並沒有工作。如果我觸摸視圖外側(側面或頂部或底部),它可以工作,我可以滾動。我在我的gesturerecognizer中有一個if語句,用於測試是否觸摸了某個區域,如果是,則執行一個動作。
我已經看過這個問題(http://stackoverflow.com/questions/3295239/uigesturerecognizer-blocking-table-view-滾動),但設置cancelsTouchesInView到NO沒有工作,我沒有任何設置狀態屬性和使用方法- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
我不知道從哪裏獲取'otherGestureRecognizer'或者調用該方法的對象。
我假設我wan't把我的手勢識別器作爲第一個參數,以及tableview中的滾動手勢識別器作爲otherGestureRecogniser,是正確的?如果是這樣,我該如何得到它?
UIPanGestureRecognizer *windPanGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(moveWindHandle:)];
[self.windRangeView addGestureRecognizer:windPanGesture];
然後在我的moveWindHandle:
-(void)moveWindHandle:(UIPanGestureRecognizer *)gesture
{
gesture.cancelsTouchesInView = NO;
isMovingHandle = [self isPoint:startedTouchAt insideHandle:_toHandleWindImageView];
if(isMovingHandle) {
if(gesture.state == UIGestureRecognizerStateBegan) {
//do stuff
}
}
else
{
//i want it to ignore this gesture and just scroll like normal if that is what hte user did
}
}
我已經設置了tableviewcontroller爲UIGestureRecognizerDelegate,但我不知道如何處理這一點。
我已經設置了'windPanGesture.delegate = self'但是這並沒有完全解決這個問題。如果我從windRangeView外部啓動滾動,然後從windRangeView內部繼續它,它的工作原理。但是,如果tableview是靜止的,並且我嘗試從windRangeView中啓動一個滾動,它不會執行滾動。 – Brentoe
完美,謝謝! -gestureRecognizerShouldBegin:在修復它後添加。 – Brentoe