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