public void OnEndDrag(PointerEventData eventData)
        {
            state = GestureRecognizerState.Ended;

            float deltaX = eventData.position.x - eventData.pressPosition.x;
            float deltaY = eventData.position.y - eventData.pressPosition.y;

            float absX = Math.Abs (deltaX);
            float absY = Math.Abs (deltaY);

            if (absX > absY) {
                if (deltaX > 0) {
                    direction = SwipeGestureRecognizerDirection.Right;
                } else {
                    direction = SwipeGestureRecognizerDirection.Left;
                }
            } else {
                if (deltaY > 0) {
                    direction = SwipeGestureRecognizerDirection.Up;
                } else {
                    direction = SwipeGestureRecognizerDirection.Down;
                }
            }

            if (HandleGesture != null) {
                HandleGesture(this);
            }
            state = GestureRecognizerState.Possible;
        }