मैं इस मुद्दे एक पर्यवेक्षक जोड़ने हल किया। पर्यवेक्षक तो इसकी बात करता है और उसके बाद कॉल आउट दिखाता है।
कुछ ऐसा जो मुझे समस्या नहीं थी के साथ है कि मैं कॉल आउट बुलबुले में जानकारी अपडेट नहीं कर सका बुलबुला दिखाया गया है के बाद। यह करने के लिए एक ही रास्ता अपना स्वयं का कॉल आउट बुलबुला बनाने के लिए (मैं यह समझ के रूप में) है, जो कुछ मैं दिया मैं एक समय सीमा है की तरह महसूस नहीं किया था है। मैं तय है कि उस पर एक अल्फा और एक पाठ के साथ एक अतिरिक्त UIView जोड़कर "स्थान डेटा हो रही है ..."। मैं तो बस जब एक स्थान दबाने उस दृश्य दिखाई और जब पर्यवेक्षक किया जाता है, मैं दृश्य फिर से छिपाने (एक एनीमेशन का उपयोग करके पाठ्यक्रम बंद)।
आशा है कि मेरा उत्तर दूसरों की मदद की।
कोड:
[pin addObserver:self
forKeyPath:@"selected"
options:NSKeyValueObservingOptionNew
context:GMAP_ANNOTATION_SELECTED];
कुछ और कोड:
- (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");
}
}
}
और बस के बाद @ synthesize के इस डाल:
NSString * const GMAP_ANNOTATION_SELECTED = @"gmapselected";