MapView Ek Açıklama Çağrı eylem sırasında açılan

oy
0

Birkaç ek açıklamalarla bir MapView var. Her ek açıklama bir UIViewController sınıfı olan bir leftCalloutAccessoryView vardır. Bunun nedeni her açıklama sunucusundan bazı verileri yüklemek ve açıklama altyazı için bu verilerin sonucunu eklemek istediğiniz olmasıdır. Bu, tüm benim app başlatıldığında tüm bu verileri yüklemek istemiyorum dışında mükemmel çalışıyor ama çizgisi balonu açıldığında sadece yapılması gereken uzaktan çağrı istiyorum.

Herkes bunu biliyor mu? viewWillload, viewDidLoad vb. Bu durumda çalışmaz. Herhangi örnekler de?

Oluştur 12/04/2010 saat 13:21
kaynak kullanıcı
Diğer dillerde...                            


1 cevaplar

oy
2

Ben bir gözlemci ekleyerek sorunu çözüldü. Gözlemci sonra onun şeyi yapar ve bundan sonra ek bilgi yukarı gösterir.

kabarcık gösterilmektedir sonra çizgisi balonunda bilgileri güncelleştirmek olamayacağını olduğu ile İçimden sorunları vardı. Bunu yapmanın tek yolu önümde bir tarih var olduğu göz önüne alındığında gibi hissetmedim şeydir, (anladığım kadarıyla) kendi çizgisi kabarcık oluşturmaktır. Bunun üzerine bir alfa ve bir metin ile ekstra bir UIView ekleyerek "... konum verileri alınıyor" diye düzeltildi. Bir konum basıldığında sadece bu görüşü ortaya çıkıp gözlemci bittiğinde, tekrar (ders dışı bir animasyon kullanarak) görünümü gizlemek.

cevabım başkalarına yardımcı umuyoruz.

Kod:

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

Biraz daha kod:

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

Ve tıpkı @ sentez en sonra bu koyun:

NSString * const GMAP_ANNOTATION_SELECTED = @"gmapselected";
Cevap 19/04/2010 saat 19:54
kaynak kullanıcı

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