2012-11-21 75 views
15

मैं एक अनंत एनीमेशन ve (एक छवि, प्रकार घूर्णन: CABasicAnimation) जब मैं एक नया ViewController धक्काअनंत CABasicAnimation बंद हो जाता है

animation.repeatCount = HUGE_VALF; 

के साथ मेरी UIView में और देखें युक्त एनीमेशन के साथ प्रारंभिक ViewController के लिए वापस जाओ अंदर, रोटेशन बंद कर दिया।

भले ही मैं एनीमेशन सेट अप करता हूं, जब व्यू कंट्रोलर की viewWillAppear विधि कॉल हो जाती है, तो यह फिर से घुमाएगी नहीं।

मैं क्या गलत कर रहा हूं?

+0

पर झूठी करने के लिए सेट करें, मुझे नहीं लगता कि Xcode के साथ इसका कोई संबंध नहीं है। –

+0

आप सही हैं। मैंने एक्सकोड टैग हटा दिया। – pinki

+0

धन्यवाद। सामान्य आईओएस प्रोग्रामिंग सवालों के लिए "आईओएस" और "कोको-टच" टैग का उपयोग करने के लिए स्वतंत्र महसूस करें। –

उत्तर

45

वास्तव में इस
इस

animation.removedOnCompletion = false 

करने के लिए अपने एनीमेशन की स्थापना और परत ही नष्ट नहीं है जब navigationController एक और ViewController का दृष्टिकोण धक्का दे दिया, क्योंकि UINavigationController viewControllers संपत्ति जो बनी रहेगी मिला हल करने के लिए एक आसान तरीका है मूल दृश्य नियंत्रक और इसलिए इसका दृश्य और आपकी एनिमेटेड परत। यह CABasicAnimation ऑब्जेक्ट को नष्ट कर देता है जब इंटरफ़ेस से हटाया जाता है भले ही आप इसे दोहराना सेट करते हैं तो अनंत तक गणना करें। तो इसे को

+1

सच है। मेरी एनीमेशन आईओएस 8 पर ठीक काम करता है लेकिन आईओएस 9 को इस सेटिंग की आवश्यकता है। – SoftDesigner

+0

उत्कृष्ट उत्तर! – philouuuu

+0

इस लाइन ने उन घंटों को बचाया जिन्हें मैं बर्बाद कर सकता था। –

4

जब स्क्रीन से एक परत हटा दी जाती है, तो यह अपने एनिमेशन खो देता है। परत स्क्रीन पर फिर से होने के बाद आपको उन्हें वापस जोड़ना होगा।

viewWillAppear: बहुत जल्दी है, क्योंकि परत उस समय स्क्रीन पर वास्तव में नहीं है। viewDidAppear: में एनीमेशन जोड़ने का प्रयास करें।

+0

मैंने सोचा कि मैंने पहले से ही 'viewDidAppear' की कोशिश की है, लेकिन ऐसा लगता है कि मैंने नहीं किया है। आपका बहुत बहुत धन्यवाद! :) – pinki

+3

ऐप ने पृष्ठभूमि मोड में वापस आने के बाद डीडएपियर को देखने का प्रयास किया और पीछे, इसे भी नहीं कहा जाता है! –

+0

'UIAplplicationDidBecomeActive' अधिसूचना को देखने का प्रयास करें और वहां अपने एनिमेशन को दोबारा जोड़ दें। –