Ktoś wie, czy jest w każdym razie, aby uzyskać przycisk na adnotacją?
Chciałbym lokalizacja być wybierane - tak można powiedzieć .. wybrać lokalizację i uzyskać wszystkie wydarzenia w tej lokalizacji, klikając na przycisk.
czy to możliwe?
szer: //
Ktoś wie, czy jest w każdym razie, aby uzyskać przycisk na adnotacją?
Chciałbym lokalizacja być wybierane - tak można powiedzieć .. wybrać lokalizację i uzyskać wszystkie wydarzenia w tej lokalizacji, klikając na przycisk.
czy to możliwe?
szer: //
Oto kod użyłem mojego adnotacją, że zawiera przycisk po prawej stronie bańki. Można ustawić IBAction pchnąć nowy widok na stosie, aby wyświetlić cokolwiek chcesz
- (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;
}
Właśnie pomógł komuś z tym w Objective C, ale jestem pewien, że koncepcja jest taka sama z mono. Musisz utworzyć własny obiekt MKAnnotationView i zastąpić GetViewForAnnotation (viewForAnnotation w obj-c) metodę klasy MKMapViewDelegate ... sprawdź inne pytanie .
Podczas tworzenia niestandardowego MKAnnotationView to obiekt jest w zasadzie UIView wykonane na mapie adnotacji ... można po prostu dodać do guzików i pozostałe informacje do widoku i pokaże się, gdy użytkownik wciśnie adnotacji.
Oto niektóre kodu szorstki dla metody delegata:
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;
}
}