Késleltetheti a hívást a küldött módszer - mapView: regionDidChangeAnimated:

szavazat
3

Amikor a felhasználó a térkép vagy nagyítja ki /, ez a módszer lesz az úgynevezett azonnal. Azt akarom, hogy késleltesse a hívást ezt a módszert mondjuk 2 mp. Lehetséges, hogy ezt?

A kérdést 17/04/2010 22:27
a forrás felhasználó
Más nyelveken...                            


2 válasz

szavazat
4

Lehet végre ez a módszer, mint ez:

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

Aztán valahol az azonos osztályba:

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

Természetesen, ha nem kell egy ilyen érveket (akár mapViewvagy animated), akkor lehet, hogy ez lényegesen egyszerűbbé halad az egyik te szükség.

Ha nem tudja csak módosítani kell a kódját MKMapViewDelegate, talán meg tudná csinálni valami hasonlót módszer swizzling, bár akkor kapsz igazán hacky.

Válaszolt 18/04/2010 00:43
a forrás felhasználó

szavazat
0

Küldhet késleltetett üzenetet performSelector:withObject:afterDelay:vagy annak egyik kapcsolódó módszerek.

Válaszolt 18/04/2010 00:19
a forrás felhasználó

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