Example #1
0
 private void CreateSwipeGesture()
 {
     swipeGesture = new SwipeGestureRecognizer();
     swipeGesture.Direction = SwipeGestureRecognizerDirection.Any;
     swipeGesture.Updated += SwipeGestureCallback;
     FingerScript.AddGesture(swipeGesture);
 }
		public void UpdateGestureRecognizers(List<IGestureRecognizer> gestureRecognizers)
		{
			this.tapGestureRecognizer = (TapGestureRecognizer)gestureRecognizers.FirstOrDefault(s => s is TapGestureRecognizer);
			this.longPressGestureRecognizer = (LongPressGestureRecognizer)gestureRecognizers.FirstOrDefault(s => s is LongPressGestureRecognizer);
			this.panGestureRecognizer = (PanGestureRecognizer)gestureRecognizers.FirstOrDefault(s => s is PanGestureRecognizer);
			this.pinchGestureRecognizer = (PinchGestureRecognizer)gestureRecognizers.FirstOrDefault(s => s is PinchGestureRecognizer);
			this.rotationGestureRecognizer = (RotationGestureRecognizer)gestureRecognizers.FirstOrDefault(s => s is RotationGestureRecognizer);
			this.swipeGestureRecognizer = (SwipeGestureRecognizer)gestureRecognizers.FirstOrDefault(s => s is SwipeGestureRecognizer);
		}
    void OnSwipe( SwipeGestureRecognizer source )
    {
        // make sure we started the swipe gesture on our swipe object
        GameObject selection = PickObject( source.StartPosition );
        if( selection == sphereObject )
        {
            UI.StatusText = "Swiped " + source.Direction + " with velocity: " + source.Velocity;

            SwipeParticlesEmitter emitter = selection.GetComponentInChildren<SwipeParticlesEmitter>();
            if( emitter )
                emitter.Emit( source.Direction, source.Velocity );
        }
    }
        protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.View> e)
        {
            base.OnElementChanged(e);
            var viewGesture = (ViewGestures)Element;

            var tapGestureRecognizer = new TapGestureRecognizer()
            {
                OnTouchesBegan = ((x, y) => viewGesture.OnTouchBegan(x, y)),
                OnTouchesEnded = (() => viewGesture.OnTouchEnded()),
                OnTap = ((x, y) => viewGesture.OnTap(x, y)),
            };

            var longPressGestureRecognizer = new LongPressGestureRecognizer(() => viewGesture.OnLongTap())
            {
                OnTouchesBegan = ((x, y) => viewGesture.OnTouchBegan(x, y)),
                OnTouchesEnded = (() => viewGesture.OnTouchEnded()),
            };
            
            #region SwipeGestureRecognizer
            var swipeLeftGestureRecognizer = new SwipeGestureRecognizer(() => viewGesture.OnSwipeLeft())
            {
                Direction = UISwipeGestureRecognizerDirection.Left,

                OnTouchesBegan = ((x, y) => viewGesture.OnTouchBegan(x, y)),
                OnTouchesEnded = (() => viewGesture.OnTouchEnded()),
            };

            var swipeRightGestureRecognizer = new SwipeGestureRecognizer(() => viewGesture.OnSwipeRight())
            {
                Direction = UISwipeGestureRecognizerDirection.Right,

                OnTouchesBegan = ((x, y) => viewGesture.OnTouchBegan(x, y)),
                OnTouchesEnded = (() => viewGesture.OnTouchEnded()),
            };

            var swipeUpGestureRecognizer = new SwipeGestureRecognizer(() => viewGesture.OnSwipeUp())
            {
                Direction = UISwipeGestureRecognizerDirection.Up,

                OnTouchesBegan = ((x, y) => viewGesture.OnTouchBegan(x, y)),
                OnTouchesEnded = (() => viewGesture.OnTouchEnded()),
            };

            var swipeDownGestureRecognizer = new SwipeGestureRecognizer(() => viewGesture.OnSwipeDown())
            {
                Direction = UISwipeGestureRecognizerDirection.Down,

                OnTouchesBegan = ((x, y) => viewGesture.OnTouchBegan(x, y)),
                OnTouchesEnded = (() => viewGesture.OnTouchEnded()),
            };
            #endregion

            #region DragGestureRecognizer
            var dragGestureRecognizer = new DragGestureRecognizer()
            {

                OnTouchesBegan = ((x, y) => viewGesture.OnTouchBegan(x, y)),
                OnTouchesEnded = (() => viewGesture.OnTouchEnded()),
                OnDrag = ((x, y) => viewGesture.OnDrag(x, y)),
            };

            //from iOS Developer Library (Gesture Recognizers)
            //...For your view to recognize both swipes and pans, you want the swipe gesture recognizer to analyze the touch event before the pan gesture recognizer does...
            if ((viewGesture.SupportGestures & ViewGestures.GestureType.gtSwipeLeft) != 0)
                dragGestureRecognizer.RequireGestureRecognizerToFail(swipeLeftGestureRecognizer);
            if ((viewGesture.SupportGestures & ViewGestures.GestureType.gtSwipeRight) != 0)
                dragGestureRecognizer.RequireGestureRecognizerToFail(swipeRightGestureRecognizer);
            if ((viewGesture.SupportGestures & ViewGestures.GestureType.gtSwipeUp) != 0)
                dragGestureRecognizer.RequireGestureRecognizerToFail(swipeUpGestureRecognizer);
            if ((viewGesture.SupportGestures & ViewGestures.GestureType.gtSwipeDown) != 0)
                dragGestureRecognizer.RequireGestureRecognizerToFail(swipeDownGestureRecognizer);
            #endregion

            if (e.NewElement == null)
            {
                if (tapGestureRecognizer != null)
                    this.RemoveGestureRecognizer(tapGestureRecognizer);

                if (longPressGestureRecognizer != null)
                    this.RemoveGestureRecognizer(longPressGestureRecognizer);

                if (swipeLeftGestureRecognizer != null)
                    this.RemoveGestureRecognizer(swipeLeftGestureRecognizer);

                if (swipeRightGestureRecognizer != null)
                    this.RemoveGestureRecognizer(swipeRightGestureRecognizer);
                
                if (swipeUpGestureRecognizer != null)
                    this.RemoveGestureRecognizer(swipeUpGestureRecognizer);
                
                if (swipeDownGestureRecognizer != null)
                    this.RemoveGestureRecognizer(swipeDownGestureRecognizer);

                if (dragGestureRecognizer != null)
                    this.RemoveGestureRecognizer(dragGestureRecognizer);
            }

            if (e.OldElement == null)
            {
                this.AddGestureRecognizer(tapGestureRecognizer);
                this.AddGestureRecognizer(longPressGestureRecognizer);
                this.AddGestureRecognizer(swipeLeftGestureRecognizer);
                this.AddGestureRecognizer(swipeRightGestureRecognizer);
                this.AddGestureRecognizer(swipeUpGestureRecognizer);
                this.AddGestureRecognizer(swipeDownGestureRecognizer);
                this.AddGestureRecognizer(dragGestureRecognizer);
            }
        }
		public iOS_SwipeGestureEventArgs(SwipeGestureRecognizer gestureRecognizer, UISwipeGestureRecognizer platformGestureRecognizer)
		{
			this.gestureRecognizer = gestureRecognizer;
			this.platformGestureRecognizer = platformGestureRecognizer;
		}
		public Android_SwipeGestureEventArgs(SwipeGestureRecognizer gestureRecognizer, Android_GestureListener androidGestureListener)
		{
			this.gestureRecognizer = gestureRecognizer;
			this.androidGestureListener = androidGestureListener;
		}