private void AddGestureRecognizers()
        {
            try
            {
                if (NativeView == null)
                {
                    return;
                }

                if (!NativeView.GestureRecognizers?.Contains(_rightGestureRecognizer) ?? true)
                {
                    NativeView.AddGestureRecognizer(_rightGestureRecognizer);
                }

                if (!NativeView.GestureRecognizers?.Contains(_leftGestureRecognizer) ?? true)
                {
                    NativeView.AddGestureRecognizer(_leftGestureRecognizer);
                }

                if (!NativeView.GestureRecognizers?.Contains(_upGestureRecognizer) ?? true)
                {
                    NativeView.AddGestureRecognizer(_upGestureRecognizer);
                }

                if (!NativeView.GestureRecognizers?.Contains(_downGestureRecognizer) ?? true)
                {
                    NativeView.AddGestureRecognizer(_downGestureRecognizer);
                }
            }
            catch (Exception)
            { }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Raises the element changed event.
        /// </summary>
        /// <param name="e">E.</param>
        protected override void OnElementChanged(ElementChangedEventArgs <NControlView> e)
        {
            base.OnElementChanged(e);

            if (e.OldElement != null)
            {
                if (null != _gestureRecognizer)
                {
                    RemoveGestureRecognizer(_gestureRecognizer);
                    _gestureRecognizer = null;
                }

                e.OldElement.OnInvalidate -= HandleInvalidate;
            }

            if (e.NewElement != null)
            {
                e.NewElement.OnInvalidate += HandleInvalidate;

                if ((null == _gestureRecognizer) && (null != NativeView))
                {
                    _gestureRecognizer = new UITouchesGestureRecognizer(e.NewElement, NativeView);
                    NativeView.AddGestureRecognizer(_gestureRecognizer);
                }
            }
        }
        void InitializeNativeRecognizer()
        {
            var renderer = Recognizer.View.GetRenderer();

            if (renderer == null)
            {
                throw new InvalidOperationException("attempted to initialize a native gesture recognizers for a view before it had created it's renderer");
            }

            NativeView = renderer.NativeView;

            //workaroudn for irritating bugn which causes renderer to fail
            if (typeof(NativeGestureType).Equals(typeof(UIPinchGestureRecognizer)))
            {
                NativeRecognizer = new UIPinchGestureRecognizer(OnGesture) as NativeGestureType;
            }
            else
            {
                Action <NativeGestureType> action = OnGesture;
                NativeRecognizer = (NativeGestureType)Activator.CreateInstance(typeof(NativeGestureType), action);
            }

            ConfigureNativeGestureRecognizer();

            NativeView.UserInteractionEnabled = true;
            NativeView.AddGestureRecognizer(NativeRecognizer);
        }
Exemplo n.º 4
0
        protected override void OnElementChanged(ElementChangedEventArgs <FlyoutMenu> e)
        {
            base.OnElementChanged(e);

            _pressedGestureRecognizer           = new UIPressedGestureRecognizer();
            _pressedGestureRecognizer.Pressed  += OnPressed;
            _pressedGestureRecognizer.Released += OnReleased;
            _pressedGestureRecognizer.Canceled += OnCanceled;
            _pressedGestureRecognizer.Moved    += OnMoved;
            NativeView.AddGestureRecognizer(_pressedGestureRecognizer);
        }
Exemplo n.º 5
0
        protected override void OnElementChanged(ElementChangedEventArgs <ListView> e)
        {
            base.OnElementChanged(e);
            UITapGestureRecognizer _tap = new UITapGestureRecognizer();

            _tap.AddTarget(() => {
                NativeView.EndEditing(true);
            });
            _tap.CancelsTouchesInView = false;
            NativeView.AddGestureRecognizer(_tap);
        }
Exemplo n.º 6
0
 public override void ViewWillAppear(bool animated)
 {
     base.ViewWillAppear(animated);
     NativeView.AddGestureRecognizer(new UISwipeGestureRecognizer(() => SelectNextTab(1))
     {
         Direction = UISwipeGestureRecognizerDirection.Left, ShouldRecognizeSimultaneously = ShouldRecognizeSimultaneously
     });
     NativeView.AddGestureRecognizer(new UISwipeGestureRecognizer(() => SelectNextTab(-1))
     {
         Direction = UISwipeGestureRecognizerDirection.Right, ShouldRecognizeSimultaneously = ShouldRecognizeSimultaneously
     });
 }
        protected override void OnElementChanged(ElementChangedEventArgs <BoxView> e)
        {
            base.OnElementChanged(e);

            if (e?.NewElement != null)
            {
                NativeView?.AddGestureRecognizer(new UIGestureRecognizer()
                {
                    Delegate = new BoxViewGestureRecognizerDelegate(Element as MaterialBoxView)
                });
            }
        }
        protected override void OnElementChanged(VisualElementChangedEventArgs e)
        {
            base.OnElementChanged(e);

            _page = (GesturedContentPage)e.NewElement;

            // Subscribe to the events here
            if (_page.CaptureSwipeRightToLeft)
            {
                NativeView.AddGestureRecognizer(new UISwipeGestureRecognizer(g => _page.OnSwipeRightToLeft())
                {
                    Direction = UISwipeGestureRecognizerDirection.Left
                });
            }

            if (_page.CaptureSwipeLeftToRight)
            {
                NativeView.AddGestureRecognizer(new UISwipeGestureRecognizer(g => _page.OnSwipeLeftToRight())
                {
                    Direction = UISwipeGestureRecognizerDirection.Right
                });
            }

            if (_page.CaptureSwipeBottomToTop)
            {
                NativeView.AddGestureRecognizer(new UISwipeGestureRecognizer(g => _page.OnSwipeBottomToTop())
                {
                    Direction = UISwipeGestureRecognizerDirection.Up
                });
            }

            if (_page.CaptureSwipeTopToBottom)
            {
                NativeView.AddGestureRecognizer(new UISwipeGestureRecognizer(g => _page.OnSwipeTopToBottom())
                {
                    Direction = UISwipeGestureRecognizerDirection.Down
                });
            }

            if (_page.CaptureTap)
            {
                NativeView.AddGestureRecognizer(new UITapGestureRecognizer(g => _page.OnTap())
                {
                    NumberOfTapsRequired = 1
                });
            }

            if (_page.CaptureLongTap)
            {
                NativeView.AddGestureRecognizer(new UILongPressGestureRecognizer(g => _page.OnLongTap()));
            }
        }
Exemplo n.º 9
0
        protected override void OnElementChanged(ElementChangedEventArgs <Frame> e)
        {
            base.OnElementChanged(e);

            if (e.NewElement != null)
            {
                var tapDetector = new UITapGestureRecognizer(() =>
                {
                    FrameRipple.Tap?.Invoke();
                });

                NativeView.AddGestureRecognizer(tapDetector);
            }
        }