Exemplo n.º 1
0
        private void HandlePan(UIPanGestureRecognizer recognizer)
        {
            var translation = recognizer.TranslationInView(this);

            Trace($"Pan translation: {translation.X}/{translation.Y}");

            StopDeceleration();

            switch (recognizer.State)
            {
            case UIGestureRecognizerState.Began:

                panGestureLastTranslation = recognizer.TranslationInView(this);

                ViewPort.Offset(panGestureLastTranslation);

                break;

            case UIGestureRecognizerState.Changed:

                var translationOffset = new CGPoint(panGestureLastTranslation.X - translation.X, panGestureLastTranslation.Y - translation.Y);

                ViewPort.Offset(translationOffset);

                Trace($"Pan translationOffset: {translationOffset.X}/{translationOffset.Y}");

                panGestureLastTranslation = translation;

                break;

            case UIGestureRecognizerState.Ended:
                Trace($"Pan gesture ended");

                var velocity = recognizer.VelocityInView(this);

                Trace($"Pan gesture velocity: {velocity.X}/{velocity.Y}");

                InitDeceleration(velocity);

                break;

            default:
                break;
            }

            SetNeedsDisplay();
        }