2012-03-28 4 views
0

Это верное утверждение, что UIGesturesRecognizer эффективно заменить любое ручное управление, обеспечиваемые намUIGestures против ручного управления

- touchesBegan:withEvent: 
– touchesMoved:withEvent: 
– touchesEnded:withEvent: 
– touchesCancelled:withEvent: 

Просто ищет подтверждения здесь.

Благодаря

ответ

1

Если вы говорите, что методы не будут называться, это не так.

Если вы говорите, что UIGesture может делать то, что делают эти методы, то да, с помощью UIGestures вы можете делать все, что можете сделать с помощью этих методов, которые вы опубликовали. И, вероятно, простым способом кодировать:

Вы можете получить состояние жестов, вид и другие. И с UIGestures легко узнать, если это краном, longpress, салфетки и т.д.

Посмотрите на Reference

Edit:

пример для вас, чтобы добавить PanGesture, которые будут обработаны после:

UIPanGestureRecognizer* pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panGestureHandler:)]; 
[self.view addGestureRecognizer:pan]; 

ваш метод, который будет обрабатывать сковороду, получит этот жест, и будет выглядеть следующим образом:

-(void)panGestureHandler:(UIPanGestureRecognizer *)gesture{ 
    CGPoint postionInView = [gesture translationInView:self.view]; 
    [yourView setCenter:postionInView]; 
} 
+0

Скажем, в прошлом у меня была играLoop, идущая в 1/60 секунд на 'drawRect', который, если' touchhesMoved' будет перерисовывать объект на экране в новом месте. Этот подход теперь переоценен с помощью UIGestureRecognizer? (pan) – JAM

+0

Я отредактировал ответ, я не знаю, правильно ли я понял. – ggrana

+0

Очень круто; благодаря – JAM

1

Только если их свойство cancelTouchesInView установлен в YES (по умолчанию).

+0

Не могли бы вы рассказать? – JAM

+0

Ум ... если свойство gesturerecognizer установлено в YES, это не вызовет ручные методы, в противном случае это будет ... – borrrden

+0

@borrden Ok thanks :) – JAM

Смежные вопросы