Хм, похоже, что вы должны выполнять эту проверку в распознавателе жестов, когда жест находится в состоянии UIGestureRecognizerStateBegan.Например:
- (void)handlePan:(UIGestureRecognizer *)sender {
CGPoint translation = [(UIPanGestureRecognizer*)sender translationInView:self.view];
switch (sender.state) {
case UIGestureRecognizerStateBegan:
if (sqrt(translation.x * translation.x) / sqrt(translation.y * translation.y) < 1)
isHorizontalScroll = YES;
else
isHorizontalScroll = NO;
break;
case UIGestureRecognizerStateChanged:
...