2010-11-07 12 views
12

यह मुझे निराशाजनक है !!!एमकेमैप व्यू क्षेत्रडिड चेंजएनिएटेड नहीं हमेशा कहा जाता है!

इसे अधिकांश समय कहा जाएगा लेकिन फिर यह चुटकी का जवाब देना बंद कर देता है। इसे स्क्रीन घुमाने और डबल टैप पर बुलाया जाएगा। चुटकी नहीं!

सहायता!

+1

क्या कभी इसका समाधान हो गया था ? – thekevinscott

+0

ऐप्पल के मंचों में इसकी कुछ चर्चा है: https://devforums.apple.com/message/525411 –

+0

यदि आप एक कस्टम एनोटेशन व्यू का उपयोग कर रहे हैं जो अपना स्वयं का स्पर्श हैंडलिंग करता है, तो इस चर्चा को देखें: http: // www.iphonedevsdk.com/forum/iphone-sdk-development/79199-regiondidchangeanimated-not-always-firing.html –

उत्तर

7

मैं कुछ कोड पर काम कर रहा था जिसमें एक ही समस्या थी और समस्या को हल किया गया था UIGestureRecognizerMKMapView पर एक सबव्यूव के रूप में जोड़ा गया था, और कभी-कभी, वे कुछ प्रतिनिधि विधियों को आग नहीं पहुंचाते थे।

तो सुनिश्चित करें कि आप MKMapView पर सबव्यू या कुछ भी नहीं जोड़ रहे हैं।

उम्मीद है कि इससे मदद मिलती है।

3

मैं कोड में नक्शा आगे बढ़ रहा था और उसके बाद ऐसा लगता है मैं

[mapView setNeedsDisplay]; 

के बाद फोन करने की जरूरत!

+0

वास्तव में अभी भी नहीं हो रहा है! –

1

मुझे लगता है कि इस समस्या को बहु सूत्रण के साथ कुछ हो सकता है।

मैं आज सुबह एक ही समस्या थी। मैं लंबी प्रेस घटना को कैप्चर करने के लिए एक इशारा पहचानकर्ता का उपयोग करता हूं और फिर मानचित्रदृश्य में एक पिन जोड़ता हूं। अगर अच्छी तरह से काम करता है लेकिन कुछ राउंड के बाद, क्षेत्र ने विधि रोक को बदल दिया।

मैं कुछ समाधान यहाँ की कोशिश की, लेकिन कोई भी काम करता है। तब मैंने कुछ अन्य मुद्दों को याद किया जो मैंने पहले किए गए कार्यों की बहु-थ्रेडिंग प्रकृति के साथ किया था। इसलिए मैं उस कोड को स्थानांतरित करने का प्रयास करता हूं जो मुख्य थ्रेड में चलने वाले ब्लॉक पर लंबी प्रेस कार्रवाई में मैपव्यू को नियंत्रित करता है। और समस्या हल हो गई है।

0

मैं touchesBeganCallback

self.tapInterceptor.touchesBeganCallback = ^(NSSet *touches, UIEvent *event) { 
    self.tapInterceptor.enabled = NO; 
    // do something 
}; 

भीतर इशारा पहचानकर्ता को अक्षम और regionDidChangeAnimated प्रतिनिधि विधि

- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated { 
    self.tapInterceptor.enabled = YES; 
    // do something 
} 
0

जब भी कोई टैप जेस्चर पहचानकर्ता MapView को जोड़ा गया में यह पुनः सक्षम करने से इस समस्या को हल करने में कामयाब रहे, सेटिंग

recognizer.cancelsTouchesInView = NO; 

देखभाल करता है o यदि समस्या है तो मैपव्यू पर छूने पर आपका व्यवसाय तर्क डबल प्रोसेसिंग की अनुमति देता है (एमकेमैप व्यू और इशारा पहचानकर्ता जो हाल ही में इस क्षेत्र के साथ हस्तक्षेप कर रहा था [विल, किया गया] चेंजएनिमेटेड :)

संबंधित मुद्दे