mapkit a anotace

hlasů
0

Mám XCode a iPhone vývoj zcela nový, takže mějte se mnou, jestli tato otázka je příliš jednoduché. Ale mám mapu a Úspěšně jsem přidal obrazy (ne kolíky), aby se za své poznámky. A mohu změnit obraz, když uživatel zvolí jeden z anotací.

Vytvořil jsem třídu, která dědí z MKAnnotationView s následujícími způsoby: -

- (id)initWithAnnotation:

- (void)setAnnotation:

- (void)drawRect:

a já jsem s použitím

- (void)touchesBegan

vědět, kdy byl vybrán anotace. A v touchesBegan dělám: -

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

ke změně obrazu. Ale to, co jsem opravdu agitoval o tom, jak je změním obraz zpět do původního obrazu, když uživatelé vybere další anotace. Zkusil jsem:-

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

ale chyby

I a zkoušel

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

}

výše uvedený kód funguje ok, dokud jsem se dostat do ann.image = i; Pak to chyby. Chyby I získat, jsou: -

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

Ano, vidím, že moje místo objekt nemá obraz tak, že je důvod, proč je to špatně. Ale když jsem vytvořit vlastnost obrazu na mém místě objektu - jak se, že změní anotace obraz, který, co se snažím dělat.

Prosím poradit, jak jsem se točí v kruzích na tento jeden za 2 dny teď !!!!

Díky předem Cheryl

Položena 29/10/2009 v 15:56
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
0

Cheryl

Nemám úplně sledovat, co se snažíte udělat, ale zde jsou některé myšlenky:

Tady je to, co bych udělal obnovit původní obrázek:

Ve vaší podtřídy MKAnnotationView, přidejte dvě vlastnosti UIImage,

firstImage a secondImage, nastavit udržet.

Když se init zobrazení poznámky, nastavit oba obrazy. (V místě, kde jste přiřadit obrázek do anotace pohledu, nebo také uložit do svého nového firstImage majetku)

Potom můžete říci

self.image = firstImage;

nebo

self.image = secondImage.

Že vymění odpovídající obraz na místo, při zachování jiný obraz kolem obnovit.

Váš kód:

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

není v pořádku. Žádá mapy pro řadu poznámek, a pak se s nimi zachází jako anotace názory.

Anotace je objekt datového modelu. Obsahuje data popisující poznámku.

Objekt Anotace VIEW je dočasný objekt zobrazení slouží k zobrazení anotaci na mapě, pokud je aktuálně viditelné. Tam nemusí být vždy zobrazení anotace pro každou anotaci na mapě.

Odpovězeno 12/11/2009 v 21:56
zdroj uživatelem

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