दोनों में से अधिकतर गुण हैं, दोनों अलग-अलग एनिमेशन का समर्थन करते हैं, दोनों अलग-अलग डेटा का प्रतिनिधित्व करते हैं। UIView और CALayer के बीच अंतर क्या हैं?UIView और CALayer के बीच अंतर क्या हैं?
उत्तर
आईओएस पर, प्रत्येक यूआईवीव को कोर एनीमेशन कैलियर द्वारा समर्थित किया जाता है, इसलिए आप UIView का उपयोग करते समय कैलियर से निपट रहे हैं, भले ही आपको इसका एहसास न हो। मैक पर एनएसवीव्स के विपरीत, जो कि कोर एनीमेशन के अस्तित्व से पहले विकसित हुआ था, UIViews को इन कैलियर के चारों ओर हल्के रैपर होने का इरादा है।
जैसा कि मैंने इसी प्रश्न में वर्णित किया है "When to use CALayer on the Mac/iPhone?", सीधे CALayers के साथ काम करने से आपको UIViews पर महत्वपूर्ण प्रदर्शन लाभ नहीं मिलते हैं। UIViews के बजाय CALayers के साथ उपयोगकर्ता इंटरफ़ेस तत्व बनाना चाहते हैं, इसका कारण यह है कि इसे मैक को बहुत आसानी से पोर्ट किया जा सकता है। UIViews NSViews से बहुत अलग हैं, लेकिन CALayers लगभग दो प्लेटफ़ॉर्म पर समान हैं। यही कारण है कि कोर प्लॉट ढांचा अन्य यूआई तत्वों के बजाय कैलियर का उपयोग करके अपने ग्राफ बताता है।
एक बात UIViews कैलियर प्रदान करती है उपयोगकर्ता इंटरैक्शन के लिए अंतर्निहित समर्थन है। वे स्पर्श और अन्य संबंधित कार्यों पर हिट-टेस्टिंग को संभालते हैं जिन्हें कैलियर के पदानुक्रम का प्रबंधन करते समय खुद को बनाने की आवश्यकता होगी। इसे स्वयं लागू करना मुश्किल नहीं है, लेकिन यह एक अतिरिक्त कोड है जिसे आपको कैलियर-केवल इंटरफ़ेस बनाने के दौरान लिखना होगा।
बेस UIView क्लास की अनुमति के मुकाबले अधिक जटिल एनिमेशन करने पर आपको अक्सर UIView के लिए अंतर्निहित परतों तक पहुंचने की आवश्यकता होगी। यूआईवीवी की एनीमेशन क्षमताओं में वृद्धि आई है क्योंकि आईओएस एसडीके परिपक्व हो गया है, लेकिन अभी भी कुछ चीजें हैं जो अंतर्निहित कैलियर के साथ बातचीत करके सर्वोत्तम तरीके से की जाती हैं।
रे Wenderlich ब्लॉग से (Tutorial)
CALayers बस दृश्य सामग्री के साथ स्क्रीन पर एक आयत का प्रतिनिधित्व वर्ग हैं। "लेकिन एक डर्न मिनट प्रतीक्षा करें," आप कह सकते हैं, " क्या UIViews के लिए हैं!" यह सच है, लेकिन इसके लिए एक चाल है: प्रत्येक UIView में एक रूट परत होती है जो इसे आकर्षित करती है!
सीधे शब्दों में कहा जाए तो UIView NSResponder से विरासत, उन से घटनाओं को संभालने, CALayer, जो NSObject से विरासत, मुख्य रूप से मोबाइल डिवाइस पर प्रतिपादन, एनीमेशन आदि
बड़ा अंतर UIView CocoaTouch लिए बनाया गया है है पर ध्यान केंद्रित करने में शामिल है। यह कुछ इवेंट हैंडलर जोड़ता है जो कैलियर प्रदान नहीं करता था।
UIView
CALayers
के लिए एक कंटेनर है। UIKit
का उपयोग करना।
CALayer
जहां हम सामग्री खींचते हैं। CoreGraphics
यदि आप सुविधाओं जैसे कस्टम नियंत्रण के साथ काम करते हैं तो सटीक देशी प्रतिपादन के लिए अधिक परत वाले एकल दृश्य के साथ आगे बढ़ना बहुत अच्छा होगा। चूंकि CALayers
UIView
से वजन रहित हैं।
मैक और आईओएस के लिए सामान्य कंकाल बनाने के लिए, CALayers
का उपयोग करके अपने ऐप के लिए डिज़ाइन का पालन करें। चूंकि यह दोनों प्लेटफार्मों में उपलब्ध है।
UIView
स्पर्श इवेंट की तरह होने सुविधा प्रतिनिधियों -(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
, tochesStart
घटनाओं और अन्य UIKit
सुविधाओं की तरह प्रयोग कर प्राप्त किया।
CALayers
के साथ काम करने के लिए कोर ग्राफिक्स ज्ञान का उपयोग करें। UIView
प्रस्तुत करने के लिए किसी भी साधारण दृश्य के लिए पर्याप्त है।
एक अच्छा कलात्मक उत्तर। –
ग्रेट संक्षिप्त उत्तर! –