protected override void OnDetached() { if (_effect?.Control == null) { return; } if (_gestureLayer != null) { _gestureLayer.ClearCallbacks(); _gestureLayer.Unrealize(); _gestureLayer = null; } _effect.Control = null; _effect = null; }
protected override void OnDetached() { if (effect?.Element == null) { return; } if (gestureLayer != null) { gestureLayer.ClearCallbacks(); gestureLayer.Unrealize(); gestureLayer = null; } effect.Element = null; effect = null; }
protected override void OnElementChanged(ElementChangedEventArgs <Xamarin.Forms.Image> args) { base.OnElementChanged(args); if (Control == null) { return; } if (GestureRecognizer == null) { GestureRecognizer = new GestureLayer(Control); GestureRecognizer.Attach(Control); } if (args.NewElement == null) { GestureRecognizer.ClearCallbacks(); return; } else { Control.Clicked += SendClicked; } if (!(args.NewElement is ImageButton button)) { return; } GestureRecognizer.SetTapCallback(GestureLayer.GestureType.Tap, GestureLayer.GestureState.Start, x => { KeyDown(); }); GestureRecognizer.SetTapCallback(GestureLayer.GestureType.Tap, GestureLayer.GestureState.End, x => { KeyUp(); }); GestureRecognizer.SetTapCallback(GestureLayer.GestureType.LongTap, GestureLayer.GestureState.End, x => { KeyUp(); }); GestureRecognizer.SetTapCallback(GestureLayer.GestureType.LongTap, GestureLayer.GestureState.Abort, x => { KeyUp(); }); }