Обратите внимание, что принятый ответ, приведенный выше, будет фиксировать только жесты касание (touchDown и touchUp без перетаскивания между ними), а жесты смахивания будут игнорироваться.
Для моих целей мне нужно было информировать обоих, и поэтому я соответствующим образом добавил распознаватели жестов. (Обратите внимание, что, несмотря на то, что это битовое поле, вы не можете OR
вместе указать свойство direction
распознавателей смахивания, поэтому для обнаружения любого пролистывания требуется 4 распознавателя жестов).
// Note that despite being a bit field, you can't `OR` together swipe gesture
// recognizers' `direction` property, so 4 gesture recognizers are required
// to detect any swipe
for (NSNumber * swipeDirection in @[@(UISwipeGestureRecognizerDirectionUp), @(UISwipeGestureRecognizerDirectionDown), @(UISwipeGestureRecognizerDirectionLeft), @(UISwipeGestureRecognizerDirectionRight)]) {
UISwipeGestureRecognizer * swipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(timerReset:)];
swipe.direction = [swipeDirection integerValue];
swipe.delegate = self;
[rootWebView addGestureRecognizer:swipe];
}