2010-11-03 13 views
5

को अनदेखा करना मेरे पास कुछ कोड है जो UIViews को घुमाता है, जैसे आप अपनी आईओएस होम स्क्रीन संपादित करते हैं। [UIApplication beginIgnoringInteractionEvents] अतिप्रवाह -आईओएस 4.2 ब्लॉक एनीमेशन -> मुझे ये चेतावनियां क्यों मिलती हैं: - [यूआईपीप्लिकेशंस इनिगोरिंग इंटेक्शन एवेन्ट्स] ओवरफ्लो।

:

- (void)wobble { 
int amountInRadians = (self.tag % 2) == 0 ? 2.0 : -2.0; 
containerView.transform = CGAffineTransformRotate(CGAffineTransformIdentity, RADIANS(-amountInRadians)); 

[UIView animateWithDuration:0.10 
     delay:0.0 
     options:(UIViewAnimationOptionAllowUserInteraction | UIViewAnimationOptionRepeat | UIViewAnimationOptionAutoreverse) 
     animations:^ { 
     containerView.transform = CGAffineTransformRotate(CGAffineTransformIdentity, RADIANS(amountInRadians)); 
     } 
     completion:NULL 
]; 
} 

- (void)stopWobble { 
[UIView animateWithDuration:0.01 
     delay:0.0 
     options:(UIViewAnimationOptionBeginFromCurrentState | UIViewAnimationOptionCurveLinear) 
     animations:^ { 
     containerView.transform = CGAffineTransformIdentity; 
     } 
     completion:NULL 
    ]; 
} 

जब मैं लडखडाना बंद करो, मैं चेतावनी (कई बार) मिलती है:

मैं इस लडखडाना प्रभाव को प्राप्त करने के लिए निम्न विधियों 2 है । की उपेक्षा।

तो (कई बार से अधिक, लोगों को शुरू से मिलते जुलते नंबर):

- [UIApplication endIgnoringInteractionEvents] -beginIgnoringInteractionEvents मिलान बिना कहा जाता है। की उपेक्षा।

पृथ्वी पर क्या चल रहा है? अगर मैं स्टॉपवॉबल एनीमेशन पर टिप्पणी करता हूं, तो यह ठीक है, लेकिन स्वाभाविक रूप से मेरे एनिमेशन बंद नहीं होते हैं। अगर मैं एनीमेशन शुरू करते समय "UIViewAnimationOptionAllowUserInteraction" विकल्प को हटा देता हूं, तो मुझे प्रारंभ होता है IgnoringInteractionEvents चेतावनी, लेकिन यह भी अच्छा नहीं है क्योंकि मुझे इन दृश्यों के साथ बातचीत करने की आवश्यकता है।

व्यवहार ठीक काम करता है, तो क्या मुझे इसे अनदेखा करना चाहिए? मुझे लगता है कि मुझे कुछ ठीक करना चाहिए, अगर केवल मुझे पता चल जाए कि इसका कारण क्या है।

उत्तर

11

स्टॉपवॉबल करने के लिए UIViewAnimationOptionAllowUserInteraction जोड़ने का प्रयास करें। मुझे पहले उस त्रुटि संदेश को मिला है और ऐसा लगता है कि एक साथ निष्पादित करने की कोशिश कर रहे दो एनिमेशन के साथ ऐसा करना प्रतीत होता है जब वे स्पष्ट रूप से ऐसा करने के लिए सेट नहीं होते हैं। मेरी दूसरी एनीमेशन में UIViewAnimationOptionAllowUserInteraction को जोड़ने से मेरे लिए यह समस्या ठीक हो गई।

+0

यह विकल्प जोड़ना वास्तव में इन चेतावनियों के आउटपुट को रोक देता है। अब हमें विवरण में इसे समझाने के लिए एक विशेषज्ञ की जरूरत है। :) –

+0

हाँ जो इसे ठीक करता है। धन्यवाद एरिक! –

+0

मुझे इन संदेशों से छुटकारा नहीं मिल रहा है। क्या किसी को पता है कि उन्हें कब और कब बुलाया जाता है? –

0

मुझे लगता है कि ऐसा तब होता है जब आपके पास बहुत सारे विचार होते हैं जो एक ही समय में एनिमेटेड होते हैं, जैसे कि डीडएपियर में कस्टम दृश्यों के ग्रिड की तरह।

ए। आईओएस 4 के तहत वे सभी एक ही समय में यूआईपीप्लिकेशन इंटरैक्शन को अक्षम करने और समस्याओं से बचने के लिए यूआईपीप्लिकेशंस ओवरफ्लो को अक्षम करने और उनमें से कुछ को अनदेखा करने का प्रयास करते हैं।

बी। सभी विचारों को एनिमेट करने के बाद फिर से इंटरैक्शन को सक्षम करने के लिए यूआईपीप्लिकेशन बताएं लेकिन यूआईएप्लिकेशंस कुछ सक्षम कॉलों को पहचान नहीं पाता है क्योंकि उन्हें (ए) में अनदेखा किया गया था।