MapView Kommentar Nummer handling når det åpnes

stemmer
0

Jeg har en mapview med flere merknader. Hver merknad har en leftCalloutAccessoryView som er en UIViewController klasse. Grunnen til dette er at jeg ønsker at alle merknader å laste noen data fra serveren, og legge resultatet av at data til merknaden undertittel. Alt dette fungerer perfekt, bortsett fra at jeg ikke ønsker å laste alle disse dataene når min app er startet, men jeg ønsker å fjernsamtale gjøres bare når callout boblen er åpnet.

Er det noen som vet hvordan jeg kan gjøre dette? Den viewWillload, viewDidLoad ect. virker ikke i dette tilfellet. Eventuelle eksempler også?

Publisert på 12/04/2010 klokken 12:21
kilden bruker
På andre språk...                            


1 svar

stemmer
2

I løste problem med å legge en observatør. Observatøren gjør deretter sine ting og etter at infomeldingen dukker opp.

Noe jeg hadde problemer med er at jeg ikke kunne oppdatere informasjonen i bildeforklaringen boble etter at boblen er vist. Den eneste måten å gjøre dette på er å lage din egen bildeforklaring boble (slik jeg forstår det), som er noe jeg føler meg ikke som gitt at jeg har en tidsfrist. Jeg fikset dette ved å legge til en ekstra UIView med en alfa på den og en tekst "Få plassering data ...". Jeg bare møt opp denne visningen når du trykker på en plassering, og når observatøren er gjort, skjuler jeg utsikten igjen (selvsagt ved hjelp av en animasjon).

Håper svaret mitt hjalp andre.

Kode:

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

Noen mer kode:

- (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");
        }
    }
}

Og sette dette rett etter @ syntetisere tallet:

NSString * const GMAP_ANNOTATION_SELECTED = @"gmapselected";
Svarte 19/04/2010 kl. 18:54
kilden bruker

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