mapkit és kommentárok

szavazat
0

Én nagyon új XCode és iPhone fejlesztés, ezért kérjük medve velem, ha ez a kérdés túl egyszerű. De van egy térképet, és már sikeresen hozzáadott képek (nem csapok) rá az én kommentárokat. És tudom változtatni a kép, ha a felhasználó kiválasztja a kommentárokat.

Csináltam egy osztályt, amely örökli a MKAnnotationView a következő módokon: -

- (id)initWithAnnotation:

- (void)setAnnotation:

- (void)drawRect:

és én használ

- (void)touchesBegan

tudni, hogy ha egy kommentár lett kiválasztva. És touchesBegan csinálok: -

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

megváltoztatni a képet. De amit én igazán zavarba az, hogy hogyan tudom megváltoztatni vissza a képet, hogy az eredeti kép, ha a felhasználó kiválasztja a következő kommentár. Megpróbáltam:-

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

de a hibák

és megpróbáltam

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

}

A fenti kód működik rendben, amíg nem kap ann.image = i; akkor a hibákat. A hibák kapok a következők: -

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

Igen látom, hogy az én helyem objektum nem egy kép, hogy ez miért megy rosszul. De ha létrehoz egy képet ingatlan helyemre tárgy - hogyan fog változni, hogy a kommentárok kép, ami mit akarok csinálni.

Kérjük, jelezze, mint én már megy körbe-körbe ebben egyet 2 napig most !!!!

Köszi előre Cheryl

A kérdést 29/10/2009 15:56
a forrás felhasználó
Más nyelveken...                            


1 válasz

szavazat
0

Cheryl,

Nem teljesen követi mit akar csinálni, de itt van néhány gondolat:

Itt van, mit tennék, hogy visszaállítsa az eredeti kép:

Az Ön alosztálya MKAnnotationView, adjunk hozzá két UIImage Properties,

firstImage és secondImage létrehozott megtartani.

Amikor az init a kommentár szerint létrehozott mindkét kép. (Azon a ponton, ahol rendelni a képet a kommentár szerint is mentse el az új firstImage tulajdon)

Akkor, akkor azt

self.image = firstImage;

vagy

self.image = secondImage.

Ez lesz cserélni a megfelelő képet a helyére, miközben a többi kép körül visszaállítani.

A kódod:

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

Ez nem helyes. Arra kéri a térkép egy sor kommentárok, majd kezeli őket kommentár nézeteit.

Egy feljegyzés egy adat modell objektumot. Ez tartalmazza a leíró adatokat tartalmazó kommentár.

Egy kommentár VIEW objektum egy ideiglenes kijelző objektum megjelenítéséhez használt egy kommentárt a térképen, ha az éppen látható. Vannak nem mindig kommentár nézetek minden kommentár a térképen.

Válaszolt 12/11/2009 21:56
a forrás felhasználó

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