Пример #1
0
        protected override void OnDetached()
        {
            _touchEvents.TouchBegin  -= OnTouchBegin;
            _touchEvents.TouchEnd    -= OnTouchEnd;
            _touchEvents.TouchCancel -= OnTouchEnd;

            _view.RemoveGestureRecognizer(_touchRecognizer);
            _touchRecognizer.Delegate?.Dispose();
            _touchRecognizer.Delegate = null;
            _touchRecognizer.Dispose();

            _touchEvents     = null;
            _touchRecognizer = null;

            _layer.RemoveFromSuperview();
            _layer.Dispose();
            _layer = null;

            _view = null;
        }
Пример #2
0
        protected override void OnAttached()
        {
            _view = Control ?? Container;

            _view.UserInteractionEnabled = true;

            _layer = new UIView
            {
                Alpha  = 0,
                Opaque = false,
                UserInteractionEnabled = false
            };
            _view.AddSubview(_layer);

            _layer.TranslatesAutoresizingMaskIntoConstraints = false;

            _layer.TopAnchor.ConstraintEqualTo(_view.TopAnchor).Active       = true;
            _layer.LeftAnchor.ConstraintEqualTo(_view.LeftAnchor).Active     = true;
            _layer.BottomAnchor.ConstraintEqualTo(_view.BottomAnchor).Active = true;
            _layer.RightAnchor.ConstraintEqualTo(_view.RightAnchor).Active   = true;

            _view.BringSubviewToFront(_layer);

            _touchEvents = new TouchEvents();

            _touchRecognizer          = new TouchEventsGestureRecognizer(_touchEvents);
            _touchRecognizer.Delegate = new ShouldRecognizeSimultaneouslyRecognizerDelegate();

            _view.AddGestureRecognizer(_touchRecognizer);

            _touchEvents.TouchBegin  += OnTouchBegin;
            _touchEvents.TouchEnd    += OnTouchEnd;
            _touchEvents.TouchCancel += OnTouchEnd;

            UpdateEffectColor();
        }