Okay, ich habe eine Reihe von Pins auf dem Mapkit. Diese Pins zeigen verschiedene Arten von Attraktionen. (ZB Parks, Bauernhöfe und usw.)Benutzerdefinierte Annotation zeigt nicht alle
Ich möchte benutzerdefinierte Bilder für diese verschiedenen Arten von Stift hinzufügen. Parks haben ein Parkbild und umgekehrt.
Wenn ich jedoch hinzugefügt habe, werden nicht alle Bilder erfolgreich angezeigt. Zum Beispiel in Parks, sollte es 5 Pins haben, aber das Bild kam nur in 2 Pins, während andere 3 in Standard roten Pins ist.
Aber wenn ich Farben verwendet, um sie zu unterscheiden. Zum Beispiel [pinsetPinColor:MKPinAnnotationColorGreen];
Es funktioniert! Weiß jemand, was das Problem ist?
Relevante Codes unten. Sag mir, wenn du mehr brauchst. Vielen Dank!
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation{
if ([annotation isKindOfClass:MKUserLocation.class]) {
//user location view is being requested,
//return nil so it uses the default which is a blue dot...
return nil;
}
//NSLog(@"View for Annotation is called");
MKPinAnnotationView *pin=[[MKPinAnnotationView alloc]
initWithAnnotation:annotation reuseIdentifier:nil];
pin.userInteractionEnabled=TRUE;
MapEvent* event = (MapEvent*)annotation;
NSLog(@"thetype: %@", event.thetype);
if ([event.thetype isEqualToString:@"adv"]) {
//[pin setPinColor:MKPinAnnotationColorGreen];
pin.image = [UIImage imageNamed:@"padv.png"];
}
else if ([event.thetype isEqualToString:@"muse"]){
//[pin setPinColor:MKPinAnnotationColorPurple];
pin.image = [UIImage imageNamed:@"pmuse.png"];
}
else if ([event.thetype isEqualToString:@"nightlife"]){
pin.image = [UIImage imageNamed:@"pnight.png"];
}
else if ([event.thetype isEqualToString:@"parks"]){
pin.image = [UIImage imageNamed:@"ppark.png"];
}
else if ([event.thetype isEqualToString:@"farms"]){
pin.image = [UIImage imageNamed:@"pfarm.png"];
}
else {
[pin setPinColor:MKPinAnnotationColorRed];
}
pin.canShowCallout = YES;
pin.animatesDrop = YES;
UIButton *rightButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
[rightButton addTarget:self action:@selector(clickAnnotation:) forControlEvents:UIControlEventTouchUpInside];
[rightButton setTitle:event.uniqueID forState:UIControlStateNormal];
pin.rightCalloutAccessoryView = rightButton;
return pin;
}
Heys! Danke für die schnelle Antwort, aber ich habe tatsächlich Probleme mit den Pins, nicht die Callouts. Irgendwelche Ideen? – funatsg