Monotouch MapKit - Anmerkungen - Hinzufügen einer Schaltfläche zu sprudeln

stimmen
7

Wer weiß, ob es überhaupt ist eine Schaltfläche auf eine Anmerkung zu bekommen?

Ich möchte die Position wählbar sein - so dass Sie den Ort sagen kann .. wählen und die Ereignisse alle an dieser Stelle erhalten, indem Sie auf den Button klicken.

Ist das möglich?

w: //

Veröffentlicht am 02/03/2010 um 18:19
quelle vom benutzer
In anderen Sprachen...                            


2 antworten

stimmen
13

Hier ist der Code, den ich für meine Anmerkung verwendet wird, es einen Knopf auf der rechten Seite der Blase enthält. Sie können einen IBAction einen neuen Blick auf den Stapel schieben, was Sie anzeigen möchten

- (MKAnnotationView *)mapView:(MKMapView *)mV viewForAnnotation:(id <MKAnnotation>)annotation
{
    MKPinAnnotationView *pinAnnotation = nil;
    if(annotation != mapView.userLocation) 
    {
        static NSString *defaultPinID = @"myPin";
        pinAnnotation = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:defaultPinID];
        if ( pinAnnotation == nil )
            pinAnnotation = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:defaultPinID] autorelease];

        pinAnnotation.canShowCallout = YES;

        //instatiate a detail-disclosure button and set it to appear on right side of annotation
        UIButton *infoButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
        pinAnnotation.rightCalloutAccessoryView = infoButton;

    }

    return pinAnnotation;
}
Beantwortet am 02/03/2010 um 20:39
quelle vom benutzer

stimmen
5

Ich half nur jemand anderen mit diesem in Objective - C, aber ich bin sicher , dass das Konzept das gleiche mit mono ist. Sie müssen ein benutzerdefiniertes MKAnnotationView Objekt erstellen und das außer Kraft setzen GetViewForAnnotation (viewForAnnotation in obj-c) Methode Ihrer MKMapViewDelegate Klasse ... überprüfen Sie die andere Frage aus .

Wenn Sie Ihre benutzerdefinierten erstellen MKAnnotationView es das Objekt im Grunde eine UIView für Karte Anmerkungen gemacht ist ... können Sie einfach Ihre Schaltfläche und andere Informationen zu der Ansicht hinzufügen und es wird angezeigt, wenn der Benutzer die Anmerkung trifft.

Hier einige grobe Code für die delegierte Methode:

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;
   }
}
Beantwortet am 02/03/2010 um 18:30
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more