0

在 Monotouch C# 中,如何区分向左、向右、向上和向下滑动?我需要为每个事件。

以下是我如何创建我的滑动识别器,它有效,但不是定向的: view_swipe_gesture = new UIPanGestureRecognizer(); view_swipe_gesture.AddTarget(this, new MonoTouch.ObjCRuntime.Selector("view_swipe_gesture_Selector")); this.View.AddGestureRecognizer(view_swipe_gesture);

4

1 回答 1

0

这是我的解决方案。它设置 bools swipe_down swipe_up swipe_right swipe_left。享受。

        public void view_swipe_gesture_handler(UIGestureRecognizer sender)
    {


        var translation = view_swipe_gesture.TranslationInView( this.View );
        int x = (int)translation.X;
        int y = (int)translation.Y;
        int absX = x;
        int absY = y;

        if (absX < 0)
            absX *= -1;

        if (absY < 0)
            absY *= -1;

        bool horizontal, veritical;
        horizontal = ( absX > absY ) ;
        veritical = !horizontal;

        // Determine up, down, right, or left:
        bool swipe_up, swipe_down, swipe_left, swipe_right;
        swipe_left = (horizontal && x < 0);
        swipe_right = (horizontal && x >= 0);
        swipe_up = (veritical && y < 0);
        swipe_down = (veritical && y >= 0);



        ++swipes;
        String dir="";
        if (swipe_down)
            dir = "DOWN";
        if (swipe_up)
            dir = "UP";
        if (swipe_left)
            dir = "LEFT";
        if (swipe_right)
            dir = "RIGHT";

                      show_debug_status("VIEW SWIPE - swipes=" + swipes 
                          + "  x=" + translation.X  + "  y=" + translation.Y 
                          + "  DIR=" + dir ); 
    }
于 2013-09-26T20:56:39.357 回答