iPhone Dev = mappe e annotazioni deselezione

voti
0

Sto disegnando con successo le annotazioni su una mappa utilizzando una matrice di annotazioni. Posso anche fare clic sul annotazioni e cambiare il suo colore o l'immagine. Il mio problema si pone quando l'uso seleziona la seconda annotazione e voglio cambiare dinamicamente il colore o l'immagine del primo nuovo ad un colore / immagine non selezionato. Posso ottenere l'allineamento di tutte le annotazioni e di lavoro attraverso l'array, ma una volta che cerco di impostare il colore o l'immagine ot la matrice ottengo un errore simile.

for (MKAnnotationView *ann in map.selectedAnnotations){ 
  if ([ann isMemberOfClass:[Place class]]) { 
    place = (Place *)ann; 
      if (currentPlaceID != place.placeID) { 
        UIImage *i = [UIImage imageNamed:@pin.png];
        ann.image = i; 
      }
}

il codice di cui sopra funziona bene fino a quando riesco a ann.image = i; allora gli errori. Gli errori che ricevo sono: -

  • - [Luogo setImage:]: selettore non riconosciuto inviato ad esempio 0x4514370 terminazione app a causa di eccezione non identificata 'NSInvalidArgumentException', la ragione: '** - [Luogo setImage:]: selettore non riconosciuto inviato ad esempio 0x4514370'

Si prega di avvisare come mi sono state andando in giro in tondo su questo per 2 giorni ora !!!!

Tutte le idee sul modo migliore per fare questo?

Grazie in anticipo

È pubblicato 29/10/2009 alle 13:58
fonte dall'utente
In altre lingue...                            


2 risposte

voti
0

Ho finalmente capito come fare questo. Come al solito non è così difficile, una volta si sa come. Proprio pensato che avrei passare questo.

- (void)setSelected:(BOOL)selected animated:(BOOL)animated
  {
    [super setSelected:selected animated:animated];
    NSLog(@"here I am in set selected");
    if (YES == selected)
    {
       NSLog(@"I am selected");
    }
    else 
   {
     self.backgroundColor = [UIColor clearColor];
      NSLog(@"not selected");
    }
  }
Risposto il 29/10/2009 a 20:23
fonte dall'utente

voti
0

Non si dispone di una proprietà della classe luogo chiamato immagine?

Qualcosa di simile ... @property (nonatomic, retain) UIImage* image;ed è correttamente sintetizzato? @synthesize image;?

L'errore è piuttosto semplice, un oggetto sta ricevendo un messaggio che non risponde a, vale a dire 'setImage' che viene richiamato dal .image.

Ecco il codice:

1. for (MKAnnotationView *ann in map.selectedAnnotations) {
2.    if ([ann isMemberOfClass:[Place class]]) {
3.        place = (Place *)ann;
4.        if (currentPlaceID != place.placeID) {
5.           UIImage *i = [UIImage imageNamed:@"pin.png"];
6.           ann.image = i;
7.        }
8.    }
9. }

Cosa posso vedere:

  • Ann è un MKAnnotationView (da map.selectedAnnotations)
  • si sta typecasting l'annotazione in un posto sulla linea 3 (è questo diritto? Fa Luogo sottoclasse MKAnnotationView?)
  • si sta impostando correttamente l'immagine per l'annotazione

Cosa significa:

  • Se posto è davvero una sottoclasse di MKAnnotationView, hai nascosto il metodo setImage (in qualche modo)
  • Se posto non è una sottoclasse di MKAnnotationView, hai aggiunto un'annotazione valida per le annotazioni (sicuro) che si sta cercando di trattare come un'annotazione.
Risposto il 29/10/2009 a 14:05
fonte dall'utente

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