Jak określić prawdziwą prędkość końcową gestu pan?

Podczas używaniaUIPanGestureRecognizer i wykrywanieUIGestureRecognizerStateEnded, wtedy prędkość gestu nie jest prawdziwą prędkością. Zamiast tego jest to stara prędkość poprzedniego wywołania mojej metody działania. Jak mogę uzyskać dostęp do prawdziwej prędkości na końcu gestu?

Tworzę mojeUIPanGestureRecognizer lubię to:

    UIPanGestureRecognizer* panGestureRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panGestureRecognized:)];
    [panGestureRecognizer setMaximumNumberOfTouches:2];
    [panGestureRecognizer setMinimumNumberOfTouches:1];
    [panGestureRecognizer setDelegate:self];
    [panGestureRecognizer setDelaysTouchesBegan:NO];
    [panGestureRecognizer setDelaysTouchesEnded:NO];
    [panGestureRecognizer setCancelsTouchesInView:NO];
    [self addGestureRecognizer:panGestureRecognizer];

Początek mojej metody działania jest tutaj:

- (IBAction) panGestureRecognized:(UIPanGestureRecognizer *)recognizer {

    UIGestureRecognizerState state = recognizer.state;

    CGPoint gestureTranslation = [recognizer translationInView:self];
    CGPoint gestureVelocity = [recognizer velocityInView:self];

    [CBAppDelegate log:@"panGestureRecognized: state: %s\n    translation: (%f, %f)\n    velocity: (%f, %f)", [self toString:state], gestureTranslation.x, gestureTranslation.y, gestureVelocity.x, gestureVelocity.y];

Przykład danych wyjściowych dziennika:

2013-09-30_10:46:32.830 panGestureRecognized: state: UIGestureRecognizerStateChanged
    translation: (-283.000000, 2.000000)
    velocity: (-43.046783, 45.551472)
2013-09-30_10:47:02.942 panGestureRecognized: state: UIGestureRecognizerStateEnded
    translation: (-283.000000, 2.000000)
    velocity: (-43.046783, 45.551472)

Jak widać, prędkość jest taka sama w obu zapisach dziennika (ta sama historia z tłumaczeniem, ale zależy mi tylko na prędkości), chociaż przytrzymywałem palec przez około 30 sekund bez poruszania go, a następnie podnosząc palec. Możesz określić czas na podstawie czasu wpisów. Z pewnością nie powinno być prędkości zgłaszanej po 30 sekundach bez poruszania palcem.

Przetestowałem to za pomocą symulatora iOS dla iPhone'a z systemem iOS 6.1.

questionAnswers(1)

yourAnswerToTheQuestion