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);
            }
        }