如何为每个引脚设置不同的图像? Xamarin iOS

时间:2016-11-29 14:00:59

标签: ios xamarin xamarin.ios

我停在那里一段时间,我想有人可以帮助我。我们知道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://github.com/xamarin/xamarin-forms-samples/blob/master/CustomRenderers/Map/iOS/CustomMapRenderer.cs

的链接

官方公会自定义地图https://developer.xamarin.com/guides/xamarin-forms/custom-renderer/map/

1 个答案:

答案 0 :(得分:1)

这是我在Xamarin论坛中发现的。

annotationView.Image = UIImage.FromFile ("pin.png");

如果您有任何图像,只需将图像签名到annotationView.Image即可。您可以将图像标识存储在我的自定义图钉中。因此,您只需将图像标识指向您想要使用的右图像即可。

类似于annotationView.Image = UIImage.FromFile (customPin.Image)这是你想要的东西吗?