Итак, правильный способ условной обработки, к сожалению, зависит от superView. Для некоторых представлений и событий (например, UITableView select) вам нужно переслать touchesBegan: event на nextResponder, отследить ваш жест, переслать touchesMoved: события на nextResponder до тех пор, пока вы не обнаружите свой жест, и когда он сработает, вы отправите touchesCancelled: к следующему ответчику и скрыть все остальные события от следующего респондента (touchesEnded: и touchesCancelled :) до тех пор, пока вы не получите touchchesEnded: или touchesCancelled: самостоятельно.
В UIScrollView, однако, есть особый случай, когда он не зависит от того, чтобы быть nextResponder для обработки событий прокрутки (прокрутка, скорее всего, обнаруживается в таких методах, как hitTest :). Поэтому независимо от того, что вы делаете в отношении пересылки или событий, прокрутка все равно происходит. Единственный способ предотвратить прокрутку - это отключить прокрутку в родительском представлении, как только ваш жест будет обнаружен, а затем снова включить прокрутку, когда она закончится или будет отменена.