Я пытаюсь реализовать эффект прокрутки меню. Если пользователь делает один удар (в любом направлении), я буду перемещать один элемент для каждого удара. Это работает очень хорошо, используя UISwipeGestureReconizer
, но если пользователь продолжает удерживать палец на экране после пролистывания, я хочу продолжать прокручивать его, пока палец не поднимется.
Кажется, я бы хотел объединить 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 никогда не вызывается. Любые идеи о том, как я могу сделать это?