Acabo de ayudar a otra persona con este objetivo en c, pero estoy seguro de que el concepto es el mismo con el mono. Es necesario crear un objeto MKAnnotationView costumbre y anular el GetViewForAnnotation (viewForAnnotation en obj-c) Método de la clase MKMapViewDelegate ... echa un vistazo a la otra pregunta .
Al crear su costumbre MKAnnotationView objeto es básicamente un UIView hecho para anotaciones mapa ... simplemente puede añadir su botón y otra información a la vista y se mostrará cuando el usuario pulsa la anotación.
Aquí un poco de código en bruto para el método delegado:
public override MKAnnotationView GetViewForAnnotation(
MKMapView mapView,NSObject annotation) {
var annotationId = "location";
var annotationView = mapView.DequeueReusableAnnotation(annotationId);
if (annotationView == null) {
// create new annotation
annotationView = new CustomAnnotationView(annotation, annotationId);
}
else {
annotationView.annotation = annotation;
}
annotation.CanShowCallout = true;
// setup other info for view
// ..........
return annotationView;
}
}