public override void DidSelectAnnotationView(MKMapView mapView, MKAnnotationView view) { DeselectPin(); if (view?.Annotation is UnifiedPointAnnotation unifiedPoint) { _selectedAnnotation = unifiedPoint; _selectedAnnotationView = view; _selectedAnnotationView.AddGestureRecognizer(_PinInfoViewLongPress); _renderer.SelectedItem = unifiedPoint.Data; var isSelected = unifiedPoint.Data?.SelectedImage != null; UpdateImage(view, unifiedPoint.Data, isSelected); UpdatePin(view, unifiedPoint.Data, true); view.Layer.ZPosition = int.MaxValue - 1; } else if (view.Class.Name == "MKModernUserLocationView") { // Ensure that when UserLocation pin is added it's always at the top view.Layer.ZPosition = int.MaxValue; // Remove InfoWindow from MKModernUserLocationView view.CanShowCallout = false; } }
public override void DidSelectAnnotationView(MKMapView mapView, MKAnnotationView view) { DeselectPin(); var unifiedPoint = view?.Annotation as UnifiedPointAnnotation; _selectedAnnotation = unifiedPoint; _selectedAnnotationView = view; if (unifiedPoint != null) { _renderer.SelectedItem = unifiedPoint.Data; var isSelected = unifiedPoint.Data?.SelectedImage != null; UpdateImage(view, unifiedPoint.Data, isSelected); UpdatePinColor(view, unifiedPoint.Data, true); } }
public override void DidSelectAnnotationView(MKMapView mapView, MKAnnotationView view) { if (_selectedAnnotation is UnifiedPointAnnotation) { var prevAnnotation = (UnifiedPointAnnotation)_selectedAnnotation; UpdateImage(_selectedAnnotationView, prevAnnotation.Data, false); UpdatePinColor(_selectedAnnotationView, prevAnnotation.Data, false); } var unifiedPoint = view.Annotation as UnifiedPointAnnotation; _selectedAnnotation = unifiedPoint; _selectedAnnotationView = view; if (unifiedPoint != null) { _renderer.SelectedItem = unifiedPoint.Data; var isSelected = unifiedPoint.Data.SelectedImage != null; UpdateImage(view, unifiedPoint.Data, isSelected); UpdatePinColor(view, unifiedPoint.Data, true); } }