示例#1
0
        protected void AttachGestureToPin(MKAnnotationView mapPin, IMKAnnotation annotation)
        {
            var recognizers = mapPin.GestureRecognizers;

            if (recognizers != null)
            {
                foreach (var r in recognizers)
                {
                    mapPin.RemoveGestureRecognizer(r);
                }
            }

#if __MOBILE__
            var recognizer = new UITapGestureRecognizer(g => OnCalloutClicked(annotation))
            {
                ShouldReceiveTouch = (gestureRecognizer, touch) =>
                {
                    _lastTouchedView = touch.View;
                    return(true);
                }
            };
#else
            var recognizer = new NSClickGestureRecognizer(g => OnCalloutClicked(annotation));
#endif
            mapPin.AddGestureRecognizer(recognizer);
        }
        public override void DidDeselectAnnotationView(MKMapView mapView, MKAnnotationView view)
        {
            // Fix issue where Pins already deselected internally but it's still highlighted on UI
            DeselectPin();

            if (view?.Annotation is UnifiedPointAnnotation unifiedPoint)
            {
                _selectedAnnotationView.RemoveGestureRecognizer(_PinInfoViewLongPress);
            }
        }