Я только что помог кому-то еще с этим в задаче c, но я уверен, что концепция моно такая же Вам необходимо создать пользовательский объект MKAnnotationView и переопределить метод GetViewForAnnotation (viewForAnnotation в obj-c) вашего класса MKMapViewDelegate ... . Проверьте другой вопрос .
Когда вы создаете свой собственный объект MKAnnotationView, это в основном UIView, созданный для аннотаций карты ... вы можете просто добавить свою кнопку и другую информацию в представление, и она будет отображаться, когда пользователь нажимает аннотацию.
Вот примерный код для метода делегата:
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;
}
}