private void UpdateRipple() { if (_renderer.NativeView is Card || _renderer.NativeView is ChipView || _renderer.NativeView is MButton) { return; } _shapeManager?.SetIsRippleEnabled(_backgroundElement.IsRippleEnabled); if (_backgroundElement.IsRippleEnabled) { if (_inkTouchController == null) { _inkTouchController = new InkTouchController(_renderer.NativeView); _inkTouchController.AddInkView(); } InvalidateShape(); if (_inkTouchController?.DefaultInkView == null) { return; } _inkTouchController.DefaultInkView.UsesLegacyInkRipple = false; if (_backgroundElement.RippleColor != Color.Default) { _inkTouchController.DefaultInkView.InkColor = _backgroundElement.RippleColor.ToUIColor(); } } else if (_inkTouchController != null && !_backgroundElement.IsRippleEnabled) { _inkTouchController.CancelInkTouchProcessing(); _inkTouchController?.DefaultInkView?.RemoveFromSuperview(); _inkTouchController?.Dispose(); _inkTouchController = null; } }