UICollectionViewDelegateFlowLayout はプロトコルであり、UICollectionViewFlowLayout はクラスであることを知っており、プロトコルとクラスの違いを知っています。私の理解では、UICollectionViewDelegateFlowLayout プロトコルに従うクラスを作成して、UICollectionViewFlowLayout からクラスを継承するのとまったく同じ効果を得ることができます。プロトコルとクラスの間の関係を見つけることで、この結論に達しました。 UICollectionViewDelegateFlowLayout ------------- UICollectionViewFlowLayout collectionView:layout:sizeForItemAtIndexPath:---- itemSize collectionView:layout:insetForSectionAtIndex:-- - sectionInset – collectionView:layout:referenceSizeForHeaderInSection: -- headerReferenceSize – collectionView:layout:referenceSizeForFooterInSection: -- footerReferenceSize
プロトコルのリファレンスで次のことも読みました。 CollectionView にレイアウト プロパティと delegateFlowLayout がある場合、delegateFlowLayout は潜在的に何かを上書きする可能性があります。言い換えれば、両方を持つことができ、プロトコルが優先されます。右?
では、同じことを行うプロトコルとクラスを発明する背後にあるロジックは何ですか?