जब भी उपयोगकर्ता स्क्रॉल नक्शा या / बाहर ज़ूम, इस विधि को तुरंत बुलाया जाता है। मैं कहना द्वारा 2 सेकेंड इस पद्धति को कॉल देरी करने के लिए चाहते हैं। क्या यह करना मुमकिन है?
प्रतिनिधि विधि करने के लिए कॉल में देरी - MapView: regionDidChangeAnimated:
वोट
3
2 जवाब
वोट 4
4
आप इस तरह है कि विधि को लागू कर सकते हैं:
-(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];
}
फिर, एक ही कक्षा में कहीं न कहीं:
-(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
}
बेशक, अगर आप उन तर्कों में से एक (या तो ज़रूरत नहीं है mapViewया animated), तो आप इस काफी सरल केवल एक ही आप की जरूरत किया था पारित करके बना सकते हैं।
आप बस अपने लिए कोड को संपादित नहीं कर सकते MKMapViewDelegate, शायद आप विधि swizzling के साथ इसी तरह कुछ कर सकते हैं, हालांकि फिर तुम हो रही है वास्तव में hacky।
वोट 0
0
आप के साथ एक देरी संदेश भेज सकते हैं performSelector:withObject:afterDelay:या उससे संबंधित विधियों में से एक।













