εικόνες συνήθειας annotationView επανέλθει καρφίτσες όταν κάνετε κλικ

ψήφοι
2

Είμαι εμφάνιση προσαρμοσμένες εικόνες στο χάρτη (αντί για τις προεπιλεγμένες ακίδες) με τη χρήση του παρακάτω κώδικα. Ωστόσο, όταν πατήσετε σε ένα αντικείμενο (και εμφανίζεται η επεξήγηση), η εικόνα επανέρχεται στην προεπιλεγμένη κόκκινο pin. Πώς μπορώ να έθιμο μου εικόνα, ακόμα και όταν εμφανιστεί η επεξήγηση;

- (MKAnnotationView *) mapView:(MKMapView *)map viewForAnnotation:(id <MKAnnotation>)annotation
{
    MKPinAnnotationView *pinAnnotation = nil;

    if (annotation != mapView.userLocation) 
    {
        static NSString *pinID = @mapPin;
        pinAnnotation = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:pinID];
        if (pinAnnotation == nil)
            pinAnnotation = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:pinID] autorelease];

        // Set the image
        pinAnnotation.image = [UIImage imageNamed:@TestIcon.png];

        // Set ability to show callout
        pinAnnotation.canShowCallout = YES;

        // Set up the disclosure button on the right side
        UIButton *infoButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
        pinAnnotation.rightCalloutAccessoryView = infoButton;

        [pinID release];
    }

    return pinAnnotation;
    [pinAnnotation release];
}
Δημοσιεύθηκε 05/04/2010 στις 00:08
πηγή χρήστη
Σε άλλες γλώσσες...                            


2 απαντήσεις

ψήφοι
5

Βρήκα κάνοντας το pinAnnotation μια MKAnnotationView παρά ένα MKPinAnnotationView, πήρα το επιθυμητό αποτέλεσμα. Η εικόνα δεν έχει μετατραπεί σε μια καρφίτσα πια

    static NSString *pinID = @"mapPin";
    pinAnnotation = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:pinID];
    if (pinAnnotation == nil)
        pinAnnotation = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:pinID] autorelease];

    // Set the image
    pinAnnotation.image = [UIImage imageNamed:@"TestIcon.png"];
Απαντήθηκε 23/11/2010 στις 08:47
πηγή χρήστη

ψήφοι
0

Θα πρέπει να χρησιμοποιήσετε ένα δευτερεύουσας προβολής και όχι την ιδιοκτησία εικόνα. Αυτός ο κωδικός λύνει succssfully το πρόβλημα για μένα:

    UIImage * image = [UIImage imageNamed:@"blue_pin.png"];
    UIImageView *imageView = [[[UIImageView alloc] initWithImage:image] autorelease];
    [annView addSubview:imageView];
Απαντήθηκε 20/05/2010 στις 12:53
πηγή χρήστη

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