protected override void OnAttached() { frameworkElement = Control == null ? Container : Control; // Get access to the TouchEffect class in the .NET Standard library effect = (RSXamarinFormsControls.Effects.TouchEffect)Element.Effects. FirstOrDefault(e => e is RSXamarinFormsControls.Effects.TouchEffect); if (effect != null && frameworkElement != null) { // Save the method to call on touch events onTouchAction = effect.OnTouchAction; onLongTouchAction = effect.OnLongTouchAction; onReleasedTouchAction = effect.OnReleasedTouchAction; // Set event handlers on FrameworkElement frameworkElement.PointerPressed += FrameworkElement_PointerPressed; frameworkElement.PointerReleased += FrameworkElement_PointerReleased; } }
protected override void OnAttached() { var view = Control == null ? Container : Control; effect = (RSXamarinFormsControls.Effects.TouchEffect)Element.Effects. FirstOrDefault(e => e is RSXamarinFormsControls.Effects.TouchEffect); if (effect != null && view != null) { onTouchAction = effect.OnTouchAction; onLongPressAction = effect.OnLongTouchAction; onReleaseAction = effect.OnReleasedTouchAction; var tapGesture = new UITapGestureRecognizer((action) => { onTouchAction(); onReleaseAction(); }); var longPress = new UILongPressGestureRecognizer((action) => { switch (action.State) { case UIGestureRecognizerState.Began: onLongPressAction(); break; case UIGestureRecognizerState.Ended: onReleaseAction(); break; } }); view.AddGestureRecognizer(tapGesture); view.AddGestureRecognizer(longPress); } }