Как я могу узнать, когда жест щипка закончен (UIGestureRecognizer)

Я хочу получить обратный вызов, когда мой UIPinchGestureRecognizer завершит жест щипка. Кроме того, было бы здорово узнать, был ли законченный жест увеличением или уменьшением масштаба.

Кто-нибудь знает способ использования? Или подход делать?

Спасибо!


person Lars Petersen    schedule 18.07.2010    source источник


Ответы (3)


Другой подход вместо переопределения touchesEnded: заключается в том, что вы можете просто проверить состояние распознавателя жестов в методе целевого обработчика.

  -(void)handlePinchGesture:(UIGestureRecognizer*)gestureRecognizer {    
    if(UIGestureRecognizerStateEnded == [gestureRecognizer state]){
      // do something
    }
  }
person cahlbin    schedule 12.08.2010
comment
Спасибо! Это даже лучше ;) - person Lars Petersen; 14.08.2010

Вы можете узнать, было ли это увеличение или уменьшение, по свойству масштаба UIPinchGestureRecognizer.

Просто переопределите метод touchesEnded:, чтобы получить обратный вызов (и вызовите какой-либо другой метод, если хотите).

person tadejsv    schedule 18.07.2010
comment
Спасибо! Это именно то, что мне было нужно! - person Lars Petersen; 20.07.2010

Наилучший подход, не требующий создания подклассов, заключается в проверке свойства «состояние» экземпляра, распознанного жестом, в вашем обработчике действий. Состояние будет меняться на всех этапах жизненного цикла жеста. Изменение состояния, которое вы ищете, — это UIGestureRecognizerStateEnded. Также рекомендуется проверять наличие UIGestureRecognizerStateCancelled.

person Lemont Washington    schedule 31.08.2011