سؤال

أعرف أن UicolletionViewdelegateFlayout هو بروتوكول بينما uicolletiVeviewflowlayout هو فئة، وأنا أعرف الفرق بين البروتوكول وفئة. من فهمي، يمكنني الحصول على فئة لمتابعة بروتوكول UicolletionViewDelegateFlayout لتحقيق نفس التأثير بالضبط عند وجود فئة موروثة من UicollectionViefFlowlayout. وصلت إلى هذا الاستنتاج من خلال العثور على هذه العلاقات بين البروتوكول والطبقة: uicolletiveviewdelegateflowlayout ------------- uicolletiveviewflowlayout. Collectionview: تخطيط: SizeforItematIndExPath: ---- ordoursize Collectionview: تخطيط: InsetforsectionAtenTex: ---- SectionInset - CollectionView: تخطيط: ResercializeForeHeaderInsection: - headerreferensize - Collectionview: تخطيط: الرجوع إلى Footerfooterinsection: - FooterRefionSize

قرأت أيضا ما يلي في مرجع البروتوكول: "جميع الأساليب الموجودة في هذا البروتوكول اختيارية. إذا لم تقم بتطبيق طريقة معينة، فإن مفوض تخطيط التدفق يستخدم القيم في خصائصه الخاصة لمعلومات التباعد المناسبة" لذا فإن فهمي هو: إذا كان لدى CollectionView ملكية تخطيط وتفويض Podelatflayout، فيمكن للنائب عن الكتابة فوق شيء ما. بمعنى آخر، يمكنني الحصول على كل من البروتوكول سوف يستغرق أولوية أعلى. أليس كذلك؟

لذلك، ما هو المنطق وراء اختراع بروتوكول وفئة تفعل الشيء نفسه؟

هل كانت مفيدة؟

المحلول

فئة تخطيط التدفق هي نوع من تخطيط التدفق الافتراضي الذي يعمل في كثير، إن لم يكن معظم الظروف. إذا كنت بحاجة إلى شيء لا يمكنه معالجة UicolletyViewFlowlayout، فيمكنك استخدام UIColleTiVeViewOut لتوفير الوظيفة الإضافية.

أساليب المندوب فقط تقدم بعض التخصيص المحدود، عبر مكالمات المفوض، للحصول على UICOLLETIONVELEWFLAWLAYOUT.

من المستندات "P> من المستندات"، يحدد بروتوكول UicolletionViewDelegateFlayout الأساليب التي تتيح لك التنسيق مع كائن UicolletionViewFlowlayout لتنفيذ تخطيط على أساس الشبكة. تحدد طرق هذا البروتوكول حجم العناصر والتباعد بين العناصر في الشبكة ". < / ص>

لا يفعلون نفس الأشياء؛ يتم توفير البروتوكول للسماح لك بالقيام بشيء إضافي أن تخطيط التدفق دون أساليب المفوض لا يفعله افتراضيا. البروتوكول، ساري المفعول، يمنحك المزيد من "التحكم". ليس عليك استخدام أساليب المفوض إذا لم تكن بحاجة إليها.

لا يوجد "أولوية"؛ البروتوكول اختياري. لذلك، لا تستخدم البروتوكول إذا كنت لا تستخدم UicolletionViewflowlayout.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top