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?
Késleltetheti a hívást a küldött módszer - mapView: regionDidChangeAnimated:
szavazat
3
2 válasz
szavazat 4
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.
szavazat 0
0
Küldhet késleltetett üzenetet performSelector:withObject:afterDelay:vagy annak egyik kapcsolódó módszerek.













