উত্তর:
আইওএস-এ, প্রতিটি ইউআইভিউ-র একটি কোর অ্যানিমেশন ক্যালায়ার সমর্থন করে, আপনি ইউআইভিউউ ব্যবহার করার সময় আপনি ক্যালায়ারদের সাথে কাজ করছেন, যদিও আপনি এটি উপলব্ধি করতে পারেন না। ম্যাকের এনএসভিউগুলি থেকে পৃথক, যা কোর অ্যানিমেশনটির অস্তিত্বের আগেই বিকশিত হয়েছিল, ইউআইভিউউজগুলি এই ক্যালায়ারগুলির চারপাশে হালকা ওজনের মোড়ক হওয়ার উদ্দেশ্যে তৈরি।
আমি যেমন অনুরূপ প্রশ্নে বর্ণনা করছি "ম্যাক / আইফোনে ক্যালায়ার কখন ব্যবহার করবেন?" , সরাসরি ক্যালিয়ার্সের সাথে কাজ করা আপনাকে ইউআইভিউ-র তুলনায় উল্লেখযোগ্য পারফরম্যান্স সুবিধা দেয় না। আপনি ইউআইভিউজের পরিবর্তে ক্যালিয়ার্সের সাথে ইউজার ইন্টারফেস উপাদান তৈরি করতে চাইতে পারেন তার একটি কারণ হ'ল এটি ম্যাকের কাছে খুব সহজেই পোর্ট করা যেতে পারে। ইউআইভিউগুলি এনএসভিউ থেকে খুব আলাদা, তবে দুটি প্ল্যাটফর্মের মধ্যে ক্যালিয়ারগুলি প্রায় অভিন্ন। এজন্যই কোর প্লটের কাঠামোটি অন্যান্য ইউআই উপাদানগুলির পরিবর্তে CALayers ব্যবহার করে তার গ্রাফগুলি দেয়।
ইউআইভিভিউরা কালায়ার্সের উপরে সরবরাহ করে এমন একটি বিষয় ব্যবহারকারীর মিথস্ক্রিয়ার জন্য অন্তর্নির্মিত সমর্থন। তারা স্পর্শ এবং অন্যান্য সম্পর্কিত ক্রিয়াকলাপগুলিতে হিট-টেস্টিং পরিচালনা করে যা আপনাকে ক্যালায়ার্সের একটি শ্রেণিবিন্যাস পরিচালনা করে যদি নিজেকে তৈরি করতে হয়। এটি নিজে প্রয়োগ করা এতটা কঠিন নয়, তবে কেবলমাত্র ক্যালিয়ার ইন্টারফেস তৈরি করার সময় এটি আপনাকে অতিরিক্ত কোডটি লিখতে হবে।
বেস ইউআইভিউ ক্লাসটি যে অনুমতি দেয় তার চেয়ে আরও জটিল অ্যানিমেশনগুলি সম্পাদন করার সময় আপনাকে প্রায়শই ইউআইভিউর জন্য অন্তর্নিহিত স্তরগুলি অ্যাক্সেস করতে হবে। আইওভিএসের অ্যানিমেশন ক্ষমতাগুলি যেমন iOS এসডিকে পরিপক্ক হওয়ার সাথে সাথে বেড়েছে, তবে এখনও কয়েকটি জিনিস রয়েছে যা অন্তর্নিহিত ক্যালায়ারের সাথে কথোপকথনের মাধ্যমে সেরাভাবে করা হয়েছে।
রে ওেন্ডারলিচ ব্লগ থেকে ( টিউটোরিয়াল )
CALayers কেবল ক্লাস ভিজ্যুয়াল সামগ্রী সহ পর্দার একটি আয়তক্ষেত্র উপস্থাপন করে। আপনি বলতে পারেন, "তবে এক ঝাঁকুনির মিনিট অপেক্ষা করুন!" এটি সত্য, তবে এটির একটি কৌশলও রয়েছে: প্রতিটি ইউআইভিউতে একটি মূল স্তর থাকে যা এটি আঁকায়!
UIView
জন্য একটি ধারক CALayers
। ব্যবহার UIKit
।
CALayer
যেখানে আমরা বিষয়বস্তু আঁকছি। ব্যবহারCoreGraphics
আপনি যদি বৈশিষ্ট্যগুলির মতো কাস্টম নিয়ন্ত্রণের সাথে কাজ করেন তবে নির্ভুল নেটিভ রেন্ডারিংয়ের জন্য আরও স্তরযুক্ত একক ভিউয়ের সাথে এগিয়ে যাওয়া দুর্দান্ত great যেহেতু CALayers
ওজনহীন UIView
।
ম্যাক এবং আইওএসের জন্য সাধারণ কঙ্কাল তৈরি করতে আপনার অ্যাপ্লিকেশনটি ব্যবহার করে ডিজাইনটি অনুসরণ করুন CALayers
। যেহেতু এটি উভয় প্ল্যাটফর্মে উপলব্ধ।
UIView
স্পর্শ ঘটনা প্রতিনিধিদের ব্যবহার করে অর্জন মত বৈশিষ্ট্য থাকার -(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
, tochesStart
ঘটনা এবং অন্য কোন মত UIKit
বৈশিষ্ট্য।
CALayers
কোর গ্রাফিক্স জ্ঞান ব্যবহারের সাথে কাজ করতে any যে কোনও সাধারণ দর্শন রেন্ডারিং UIView
যথেষ্ট।
বড় পার্থক্যটি হ'ল ইউআইভিউউ মোবাইল ডিভাইসে কোকো টাচের জন্য নকশাকৃত। এটি কিছু ইভেন্ট হ্যান্ডলার যুক্ত করেছে যা ক্যালায়ার সরবরাহ করেনি।
ইউআইভিউ: দর্শনগুলির আরও জটিল শ্রেণিবিন্যাস লেআউট রয়েছে। তারা ব্যবহারকারীর মিথস্ক্রিয়া যেমন টেপ, পিঞ্চ, ক্লিপ এবং আরও অনেক কিছু পেতে পারে। ইউআইভিউজের সাথে কাজ করা মূল থ্রেডে ঘটে, এর অর্থ এটি সিপিইউ শক্তি ব্যবহার করছে।
ক্যালায়ার: অন্যদিকে স্তরগুলির সহজ শ্রেণিবিন্যাস রয়েছে। এর অর্থ তারা সমাধানের জন্য দ্রুত এবং স্ক্রিনে আঁকতে দ্রুত। মতামতগুলির সাথে অসদৃশ কোনও প্রতিক্রিয়াশীল চেইন নেই। স্তরগুলি সরাসরি জিপিইউতে টানা হয়। এটি সিপিইউকে বোঝা না করে একটি পৃথক থ্রেডে ঘটে।
আরও তথ্যের জন্য: https://medium.com/@fassko/uiview-vs-calayer-b55d932ff1f5