MapView Jegyzet Callout intézkedéseket, ha megnyílt

szavazat
0

Van egy mapview több kommentárokat. Minden kommentár egy leftCalloutAccessoryView ami UIViewController osztályban. Ennek az az oka, hogy én akarom, hogy minden kommentár betölteni néhány adatot a szerver, és adjunk hozzá az eredménye, hogy az adatok a kommentár feliratot. Ez minden tökéletesen működik, kivéve, hogy nem akarja betölteni az összes adatot, ha az én app elindul, de azt szeretnénk, hogy a távoli hívás kell elvégezni, ha a kiemelő buborék van nyitva.

Nem tudja valaki, hogy hogyan tudom ezt megtenni? A viewWillload, viewDidLoad ect. nem működik ebben az esetben. Bármilyen példát is?

A kérdést 12/04/2010 13:21
a forrás felhasználó
Más nyelveken...                            


1 válasz

szavazat
2

Oldottam meg a kérdést hozzátéve egy megfigyelő. A megfigyelő akkor teszi a dolgot, és azt követően, hogy a kiemelő felbukkan.

Valami gondjaim voltak, hogy nem tudtam frissíteni az információkat a kiemelő buborék után a buborék látható. Az egyetlen módja, hogy ezt is, hogy saját kiemelő buborék (ha jól értem), amire én nem érzem, mivel van egy határidőt. Én fix, hogy hozzáadásával extra UIView alfa rajta, és a szöveg „Első helyen adatok ...”. Csak jelenne meg, hogy a néző, ha megnyom egy helyen, és amikor a megfigyelő tettem, elrejti a nézet újra (ki természetesen segítségével egy animáció).

Remélem válaszom segített másoknak.

Kód:

[pin addObserver:self
      forKeyPath:@"selected"
         options:NSKeyValueObservingOptionNew
         context:GMAP_ANNOTATION_SELECTED];

Néhány további kód:

- (void)observeValueForKeyPath:(NSString *)keyPath
                      ofObject:(id)object
                        change:(NSDictionary *)change
                       context:(void *)context{

    NSString *action = (NSString*)context;

    MKAnnotationView *annotationView = [(MKAnnotationView*)object retain];
    BikeAnnotation *bike = [[annotationView annotation] retain];

    if([action isEqualToString:GMAP_ANNOTATION_SELECTED] && [[bike _stationType] intValue] != 5 && [[bike _stationType] intValue] != 6){
        BOOL annotationAppeared = [[change valueForKey:@"new"] boolValue];
        if (annotationAppeared) {
            NSLog(@"Annotation selected");
        else {
            NSLog(@"annotation deselected");
        }
    }
}

És hogy ezt csak a @ után szintetizálása a:

NSString * const GMAP_ANNOTATION_SELECTED = @"gmapselected";
Válaszolt 19/04/2010 19:54
a forrás felhasználó

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