mapkit og kommentarer

stemmer
0

Jeg er veldig nytt for XCode og iPhone utvikling så kan du bære med meg hvis dette spørsmålet er for enkel. Men jeg har et kart, og jeg har lagt bildene (ikke pinner) til det for mine kommentarer. Og jeg kan endre bildet når brukeren velger en av kommentarene.

Jeg opprettet en klasse som arver fra MKAnnotationView med følgende metoder: -

- (id)initWithAnnotation:

- (void)setAnnotation:

- (void)drawRect:

og jeg bruker

- (void)touchesBegan

å vite når en merknad er valgt. Og i touchesBegan gjør jeg: -

UIImage *i = [UIImage imageNamed:@A.png];
self.image = i;

å endre bildet. Men det jeg virkelig stabbet på er hvordan endrer jeg bildet tilbake til det opprinnelige bildet når brukerne velger neste merknaden. Jeg har prøvd:-

NSArray *selectedAnnotations = map.selectedAnnotations;
for(id annotationView in selectedAnnotations) {
[map deselectAnnotation:[annotationView annotation] animated:NO];
}

Men det feil

og jeg prøvde

for (MKAnnotationView *ann in map.selectedAnnotations){
if ([ann isMemberOfClass:[Place class]])
{
place = (Place *)ann;
NSLog(@second = %@@ %f@ %f, place.title, place.longitude, place.latitude);
if (currentPlaceID == place.placeID) {
//UIImage *i = [UIImage imageNamed:@A.png];

//ann.image = i;
}
else {
UIImage *i = [UIImage imageNamed:@pin.png];

ann.image = i;
}
}

}

koden ovenfor fungerer ok før jeg får ann.image = i; Da er det feil. Feilene jeg får er: -

*** -[Place setImage:]: unrecognized selector sent to instance 0x4514370
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[Place setImage:]: unrecognized selector sent to instance 0x4514370'

Ja, jeg kan se at min plass objektet ikke har et bilde så det er derfor det går galt. Men hvis jeg lage et bilde eiendom på min plass objekt - hvordan vil det endre merknader bilde som det jeg prøver å gjøre.

Vennligst informer som jeg har gått rundt i sirkler på dette i 2 dager nå !!!!

Takk på forhånd Cheryl

Publisert på 29/10/2009 klokken 14:56
kilden bruker
På andre språk...                            


1 svar

stemmer
0

Cheryl

Jeg vet ikke helt følge hva du prøver å gjøre, men her er noen tanker:

Her er hva jeg ville gjøre for å gjenopprette det opprinnelige bildet:

I underklasse av MKAnnotationView, tilsett to UIImage Egenskaper,

firstImage og secondImage, satt opp til å beholde.

Når du init kommentarvisning, sette opp begge bildene. (På det punktet hvor du tilordne bildet til merknad syn, også lagre den på nytt firstImage eiendom)

Deretter kan du si

self.image = firstImage;

eller

self.image = secondImage.

Det vil bytte det aktuelle bildet på plass, mens det andre bildet rundt for å gjenopprette.

Din kode:

NSArray *selectedAnnotations = map.selectedAnnotations; for(id annotationView in selectedAnnotations) { [map    
deselectAnnotation:[annotationView annotation] animated:NO]; }

er ikke riktig. Det ber kartet for en rekke markeringer, og deretter behandler dem som merknads utsikt.

En kommentar er en datamodell objekt. Den inneholder data som beskriver en merknad.

En kommentar VIEW objekt er en midlertidig skjerm objekt brukes til å vise en merknad på kartet hvis det er synlige. Det er ikke alltid merknads visninger for hver merknad på kartet.

Svarte 12/11/2009 kl. 20:56
kilden bruker

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