我停在那里一段时间,我想有人可以帮助我。我们知道MKAnnotationView.Image =某个图像,会将所有图钉设置为此图像。如何为不同的引脚设置不同的图像。通常,有一个循环将一个引脚签名为一个图像,但是使用MKAnnotationView.Image,如何设置它。
MKAnnotationView GetViewForAnnotation (MKMapView mapView, IMKAnnotation annotation)
{
MKAnnotationView annotationView = null;
if (annotation is MKUserLocation)
return null;
var anno = annotation as MKPointAnnotation;
var customPin = GetCustomPin (anno);
if (customPin == null) {
throw new Exception ("Custom pin not found");
}
annotationView = mapView.DequeueReusableAnnotation (customPin.Id);
if (annotationView == null) {
annotationView = new CustomMKAnnotationView (annotation, customPin.Id);
annotationView.Image = UIImage.FromFile ("pin.png");
annotationView.CalloutOffset = new CGPoint (0, 0);
annotationView.LeftCalloutAccessoryView = new UIImageView (UIImage.FromFile ("monkey.png"));
annotationView.RightCalloutAccessoryView = UIButton.FromType (UIButtonType.DetailDisclosure);
((CustomMKAnnotationView)annotationView).Id = customPin.Id;
((CustomMKAnnotationView)annotationView).Url = customPin.Url;
}
annotationView.CanShowCallout = true;
return annotationView;
}
annotationView.Image = UIImage.FromFile(" pin.png");将所有图钉设置为此图像。但是,通常人们希望每个引脚都有不同的图像。任何想法,我真的很感激。
的链接官方公会自定义地图https://developer.xamarin.com/guides/xamarin-forms/custom-renderer/map/
答案 0 :(得分:1)
这是我在Xamarin论坛中发现的。
annotationView.Image = UIImage.FromFile ("pin.png");
如果您有任何图像,只需将图像签名到annotationView.Image即可。您可以将图像标识存储在我的自定义图钉中。因此,您只需将图像标识指向您想要使用的右图像即可。
类似于annotationView.Image = UIImage.FromFile (customPin.Image)
这是你想要的东西吗?