Существует ли какой-либо метод, который я могу вызвать до вызова метода gestrecognizer? - PullRequest
0 голосов
/ 12 марта 2012

У меня есть кнопка с UIPanGestureRecognizer. Я хочу определить направление пальца следующим образом:

if (sqrt(translation.x * translation.x) / sqrt(translation.y * translation.y) < 1)
    {
        isHorizontalScroll = YES;

    }
    else
    {
        isHorizontalScroll = NO;
    }

перед вызовом метода распознавателя.

Кто-нибудь знает решение?

Ответы [ 3 ]

1 голос
/ 12 марта 2012

Хм, похоже, что вы должны выполнять эту проверку в распознавателе жестов, когда жест находится в состоянии 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:

            ...
1 голос
/ 12 марта 2012

На самом деле конкретная реализация зависит от вас.Для этого у вас есть как минимум 3 рычага:

  1. Используйте распознаватели жестов.
  2. Переопределите методы UIResponder:

    – touchesBegan:withEvent:
    
    – touchesMoved:withEvent:
    
    – touchesEnded:withEvent:
    
  3. Переопределение метода UIWindow:

    – (void)sendEvent:(UIEvent *)event
    
1 голос
/ 12 марта 2012

Использовать прикосновения: начало, прикосновения, прикосновения, конец

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...