जैसा कि मैंने here का वर्णन किया है, मैंने एनिमेशन में UIViews और CALayers दोनों का उपयोग किया है और उनके बीच एक नगण्य प्रदर्शन अंतर पाया है। UIViews परतों के चारों ओर बहुत हल्के रैपर हैं। साथ ही, आपको आवश्यक किसी परत-आधारित एनिमेशन को UIView की बैकिंग परत पर आसानी से लागू किया जा सकता है।
मैंने सीधे उन परिस्थितियों में कैलियर का उपयोग किया है जहां मैं क्रॉस-प्लेटफार्म (मैक/आईओएस) यूआई तत्व बनाना चाहता था, क्योंकि कैलियर दोनों प्लेटफार्मों (काफी अलग NSViews और UIViews के विपरीत) पर उनके कार्यान्वयन में लगभग समान हैं। कैलियर के पास बॉक्स से बाहर कोई टच-हैंडलिंग दिनचर्या नहीं है, लेकिन यदि आपको आवश्यकता हो तो आप उस क्षमता को जोड़ सकते हैं।
कुछ किनारे के मामले भी हैं जहां आप परतों के साथ सीधे काम करना चाहेंगे, जैसे परतों के सीमित 3-डी हेरफेर (कवरफ्लो प्रभाव में) या कण प्रभाव उत्पन्न करने के लिए एक कार्प्लिकेटर लेयर का उपयोग करते समय।
स्रोत
2011-01-14 03:22:01
मैं UIViews के साथ जा रहा था, मुख्य रूप से क्योंकि ब्लॉक के साथ UIView एनीमेशन उन मामलों में कार्यान्वित करना इतना आसान है जहां एनिमेशन चलाने/क्रमशः क्रियाएं करना महत्वपूर्ण है। (वे समापन ब्लॉक बहुत साफ हैं, और एक प्रतिनिधि 'एनीमेशनडिडटॉप' कॉल का उपयोग करके मेरे विशेष मामले में लागू करने के लिए एक दुःस्वप्न होने वाला था।) –
@ ग्रेग - हां, नया ब्लॉक-आधारित यूआईवीव एनिमेशन बहुत साफ है। हालांकि, आप CATransaction की '+ setCompletionBlock: 'का उपयोग करके CAAnimations के साथ समान ब्लॉक समापन कॉलबैक प्राप्त कर सकते हैं, जो उस लेनदेन के भीतर लिपटे सभी एनिमेशनों को पूरा करने पर एक ब्लॉक निष्पादित करेगा। अगर आप इस तरह से जाना चाहें तो बस कुछ सोचने के लिए। –