mapkit și adnotări

voturi
0

Sunt foarte nou la XCode și iPhone de dezvoltare astfel încât vă rugăm să poarte cu mine, dacă această întrebare este prea simplu. Dar am o hartă și am adăugat cu succes imaginile (nu ace) pentru al adnotările mele. Și eu pot schimba imaginea atunci când utilizatorul selectează una dintre adnotări.

Am creat o clasă care moștenește de la MKAnnotationView cu următoarele metode: -

- (id)initWithAnnotation:

- (void)setAnnotation:

- (void)drawRect:

și eu sunt, folosind

- (void)touchesBegan

să știe când o adnotare a fost selectat. Și în touchesBegan fac: -

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

pentru a schimba imaginea. Dar ceea ce eu sunt într-adevăr lovit pe modul prin care pot schimba imaginea înapoi este imaginea originală, atunci când utilizatorii selectează următoarea adnotare. Am încercat:-

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

dar ea erori

și am încercat

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;
}
}

}

codul de mai sus funcționează bine până când ajung la ann.image = i; atunci acesta erori. Erorile pe care le primesc sunt: ​​-

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

Da, se poate vedea că obiectul meu loc nu are o imagine, astfel încât este de ce se întâmplă greșit. Dar dacă am crea o proprietate imagine pe locul obiectului meu - modul în care se va schimba imaginea adnotări pe care ceea ce am încercat să fac.

Vă rugăm să comunicați așa cum am fost întâmplă în jurul valorii în cercuri pe acesta timp de 2 zile acum !!!!

Multumesc anticipat Cheryl

Întrebat 29/10/2009 la 15:56
sursa de către utilizator
În alte limbi...                            


1 răspunsuri

voturi
0

Cheryl,

Eu nu urmăresc complet ceea ce încerci să faci, dar aici sunt câteva gânduri:

Iată ce aș face pentru a restabili imaginea originală:

În subclasă dvs. de MKAnnotationView, adăugați două proprietăți UIImage,

firstImage și secondImage, configurat pentru a reține.

Când init vizualizarea adnotare, configurați ambele imagini. (La punctul în care atribuiți imaginea la vizualizarea adnotare, de asemenea, salvați-l la noua proprietate firstImage)

Apoi, puteți spune

self.image = firstImage;

sau

self.image = secondImage.

Aceasta va schimba imaginea corespunzătoare în loc, păstrând în același timp cealaltă imagine în jurul valorii de a restabili.

Codul tau:

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

Nu este corect. Acesta solicită hartă pentru o serie de adnotări, apoi le tratează ca VIEWS adnotată.

O adnotare este un obiect model de date. Acesta conține datele care descriu o adnotare.

Un obiect adnotare VIEW este un obiect de afișare temporară utilizat pentru a afișa o adnotare pe hartă în cazul în care este vizibil în prezent. Nu sunt întotdeauna puncte de vedere adnotări pentru fiecare adnotare pe hartă.

Publicat 12/11/2009 la 21:56
sursa de către utilizator

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