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) { } }
/// <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); }
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); }
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); }
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())); } }
protected override void OnElementChanged(ElementChangedEventArgs <Frame> e) { base.OnElementChanged(e); if (e.NewElement != null) { var tapDetector = new UITapGestureRecognizer(() => { FrameRipple.Tap?.Invoke(); }); NativeView.AddGestureRecognizer(tapDetector); } }