IOS UISwipeGestureRecognizer рассчитать смещение - PullRequest
2 голосов
/ 01 декабря 2011

Я добавляю распознаватель жестов в моё приложение

- (void)createGestureRecognizers
{

    //adding swipe up gesture
    UISwipeGestureRecognizer *swipeUpGesture= [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeUpGesture:)];
    [swipeUpGesture setDirection:UISwipeGestureRecognizerDirectionUp];
    [self.view addGestureRecognizer:swipeUpGesture];
    [swipeUpGesture release];
}

И метод обработки событий смахивания:

-(IBAction)handleSwipeUpGesture:(UISwipeGestureRecognizer *)sender
{
    NSLog(@"handleSwipeUpGesture: called");
}

Как я могу рассчитать смещение здесь? переместить вид?

Ответы [ 2 ]

8 голосов
/ 01 декабря 2011

У абстрактного суперкласса UIGestureRecognizer для UISwipeGestureRecognizer есть следующие методы

- (CGPoint)locationInView:(UIView *)view
- (CGPoint)locationOfTouch:(NSUInteger)touchIndex inView:(UIView *)view

, которые позволяют вам узнать позицию жеста в представлении, но это распознаватель дискретных жестов (который срабатывает при заданном«перевод» или «смещение», как вы хотите назвать, что вы не можете контролировать).Звучит так, как будто вы ищете непрерывный контроль, для этого вам нужен UIPanGestureRecognizer , который имеет следующие методы (которые выполняют вычисления перевода для вас)

- (CGPoint)translationInView:(UIView *)view
- (void)setTranslation:(CGPoint)translation inView:(UIView *)view
- (CGPoint)velocityInView:(UIView *)view

После этого вы получите быстрыйзапускать обратные вызовы, когда жест постоянно разворачивается.

8 голосов
/ 01 декабря 2011

UISwipeGestureRecognizer предназначен для обнаружения дискретного жеста смахивания - он запускает ваше действие только один раз после того, как смахивание завершено - поэтому, если вы спрашиваете о смещении или расстоянии, на которое перемещен палец, вы, вероятно, захотите посмотреть на создание подклассаUIGestureRecognizer или использование UIPanGestureRecognizer для получения непрерывной информации о жестах.Не уверен в том, что именно вы хотите сделать, но UIScrollView также может быть в порядке ...

Проверьте документы Apple для распознавателей жестов .

...