temsilci yöntemine çağrıyı beklet - MapView: regionDidChangeAnimated:

oy
3

kaydırdığı harita veya in / out yakınlaştırır zaman, bu yöntem anında çağrılır. Ben 2 saniye diyelim tarafından bu yönteme çağrıyı geciktirmek istiyor. Bunu yapmak mümkün mü?

Oluştur 17/04/2010 saat 22:27
kaynak kullanıcı
Diğer dillerde...                            


2 cevaplar

oy
4

Böyle bu yöntemi uygulamak olabilir:

-(void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated
{
    NSNumber *animatedNumber = [NSNumber numberWithBool:animated];
    NSArray *args = [[NSArray alloc] initWithObjects:mapView,
                                                     animatedNumber,nil];

    [self performSelector:@selector(delayedMapViewRegionDidChangeAnimated:)
          withObject:args
          afterDelay:2.0f];

    [args release];
}

Sonra, bir yerde aynı sınıfta:

-(void)delayedMapViewRegionDidChangeAnimated:(NSArray *)args
{
  MKMapView *mapView = [args objectAtIndex:0];
  BOOL animated = [[args objectAtIndex:1] boolValue];

  // do what you would have done in mapView:regionDidChangeAnimated: here
}

Eğer (ya bu argümanlar birini gerekmiyorsa Tabii mapViewya animated), yalnızca ihtiyaç yaptığını birini geçerek bu oldukça basit yapabiliriz.

Sadece şunlara ait kodunu düzenlemek yapamıyorsanız MKMapViewDelegateo zaman alıyoruz rağmen, belki de, yöntem swizzling ile benzer bir şey yapabileceğini gerçekten hacky.

Cevap 18/04/2010 saat 00:43
kaynak kullanıcı

oy
0

Sen bir gecikmiş mesaj gönderebilir performSelector:withObject:afterDelay:ya da ilişkili yöntemlerden biridir.

Cevap 18/04/2010 saat 00:19
kaynak kullanıcı

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