我正試圖實現滾動菜單的效果。如果用戶單次滑動(在任何方向),我將爲每次滑動移動一個項目。使用UISwipeGestureReconizer
這種方式工作得很好,但如果用戶持續按住屏幕上的手指,我想保持滾動直到手指擡起。UIGestureRecognizer輕掃並按住
看來我想結合UISwipeGestureRecognizer
與UILongPressGestureRecognizer
來完成此操作。成功滑動(UISwipeGestureRecognizer
)後,啓用UILongPressGestureRecognizer
並開始滾動,直到手指擡起(UILongPressGestureRecognizer
結束)。
問題是UILongPressGestureRecognizer
事件在成功刷卡後不會發生。
這裏有一個例子:
// Create single swipe recognizer to recognize right swipes
swipeRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleSwipeFrom:)];
swipeRecognizer.delegate = self;
[_gestureView addGestureRecognizer:swipeRecognizer];
[swipeRecognizer release];
// Create long press recognizer to recognize right press and holds
longPressRecognizer = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeAndHoldFrom:)];
longPressRecognizer.delegate = self;
[longPressRecognizer setMinimumPressDuration:0.5];
[longPressRecognizer setEnabled:NO];
[_gestureView addGestureRecognizer:longPressRecognizer];
[longPressRecognizer release];
- (void)handleSingleSwipeFrom:(UISwipeGestureRecognizer *)recognizer {
if ([recognizer state] == UIGestureRecognizerStateEnded) {
// Move one item in direction based on recognizer.direction
[_longPressGestureRecognizer setEnabled:YES];
}
}
如果我把我的手指輕掃後在屏幕上,不會被調用的UILongPressGestureRecognizer事件。有關我如何完成此任何想法?
看一看在回答這個問題的SO:http://stackoverflow.com/questions/3468648/how-do-i-chain-two-uigesturerecognizers-together – 2011-04-07 18:25:41
你有沒有想出解決出來嗎?我得到和你一樣的行爲。 – 2012-06-24 20:50:20