2009-09-19 8 views
18

आईफोन या मैक पर कैलियर का उपयोग करने के दौरान और जब इसका उपयोग नहीं किया जाता है तो मैं थोड़ा उलझन में हूं? CoreAnimation CALayer का उपयोग किए बिना मेरे UIView आधारित ऑब्जेक्ट्स पर ठीक काम करता है। इस कक्षा में खोदने का उचित समय कब है?मैक/आईफोन पर कैलियर का उपयोग कब करें?

उत्तर

35

मेरे मानक में, UIView और CALayer आईफोन पर प्रदर्शन के समान स्तर के बारे में प्रदान करते हैं। जैसा कि रैप्रिच ने अपनी टिप्पणी में उल्लेख किया है, यूविवेस कैलियर के चारों ओर एक पतली आवरण हैं। मैक पर, कैलियर एनएसवीव्स की तुलना में अधिक हल्के वजन वाले हैं।

जैसा कि बेन बताता है, आप सीधे कैलियर के साथ काम करके निहित एनिमेशन की क्षमताओं से परे जा सकते हैं, यहां तक ​​कि CATransform3D के माध्यम से कुछ 3-डी प्रभाव भी प्रदान कर सकते हैं। कई मामलों में, आप बैकिंग परत तक पहुंच कर अपने मानक विचारों के साथ भी ऐसा कर सकते हैं (यदि दृश्य परत-समर्थित है)।

एक और चिंता क्रॉस-प्लेटफार्म (मैक/आईफोन) कोड है। My iPhone application बड़े हिस्से में अपने प्राथमिक दृश्य के लिए एक ऑल-कैलियर इंटरफ़ेस का उपयोग करता है क्योंकि मैं अपने मैक समकक्ष में उस इंटरफ़ेस को चित्रित करने के लिए सटीक उसी कोड का उपयोग कर सकता हूं। इसके एक और उदाहरण के लिए, मैं आपको Core Plot framework पर निर्देशित करता हूं, जो पूरी तरह से कैलियर का उपयोग करके ग्राफ़ खींचता है और मैक और आईफोन दोनों पर काम करता है। कैलायर्स दोनों प्लेटफ़ॉर्म पर काफी समान हैं, जहां UIView और NSView में बहुत अलग इंटरफ़ेस हैं।

4

यदि आप 'अंतर्निहित एनीमेशन' (जो यूआईकिट/एपकिट द्वारा सीए, परतों और एनिमेटरों में खोदने के बिना पेश किए गए हैं) के साथ आप जो कर सकते हैं वह कर सकते हैं तो निश्चित रूप से उस मार्ग पर जाएं।

जब आप गैर-रैखिक गति, या दोहराने वाले प्रभाव, और कुछ सिंक्रनाइज़ प्रभावों को अधिक जटिल एनिमेशन का उपयोग करना शुरू करते हैं, तो CoreAnimation play में आता है। इसके साथ आप बहुत कुछ कर सकते हैं, लेकिन यह एक बहुत भारी कर्तव्य उपकरण है (कम से कम UIKit सामान की तुलना में, एक समान सीखने की वक्र के साथ)।

+3

मुझे लगता है कि यह कथन भ्रामक है। कोर एनीमेशन प्रदान करने वाले अमूर्तता का स्तर उल्लेखनीय है। एपीआई लेने और काम करने के लिए बहुत आसान है। मैं समझता हूं कि आप इसे UIKit से तुलना कर रहे हैं लेकिन इसे 'भारी कर्तव्य' कहते हैं और 'सीखने के इलाज' शब्दों का उपयोग करना निराशाजनक है और मुझे लगता है कि भ्रामक है। कोर एनीमेशन प्रोग्रामिंग गाइड निश्चित रूप से थोड़ी सी काम का उपयोग कर सकता है। –

+2

मैं जो से सहमत हूं; UIViews कैलियर और यूरीस्पोन्डर के शीर्ष पर सिर्फ एक पतली आवरण हैं। यदि इंटरफ़ेस बिल्डर के लिए नहीं है, तो कैलिअर्स UIViews (और ओपनजीएल पर विकसित होने वाले किसी भी व्यक्ति के लिए काम करना अधिक कठिन नहीं होगा), दोनों को बहुत सरल बनाया गया है) – rpetrich

+2

ठीक है, शायद मैं अपने विवरण में थोड़ा कठोर था: CoreAnimation बहुत बढ़िया है, और एक बार जब आप इसे लटका लेते हैं तो आसान हो जाता है। हालांकि, यह केवल सेटफ्रेम को लपेटने से अधिक परिमाण का क्रम है: संदेश एनीमेशन कॉल शुरू/प्रतिबद्ध में संदेश। –