UICollectionView 和 UICollectionViewLayout 的关系?

UICollectionView and UICollectionViewLayout relationship?

我对这两个 类 如何相互通信感到困惑,因为我没有看到它们对一个或另一个进行子类化。 UICollectionViewLayout 如何准确地将其信息传递给 UICollectionView?

A UICollectionView 通过其 collectionViewLayout 属性.

对其布局具有很强的引用

A UICollectionViewLayout 通过其 collectionView 属性 对其集合视图有未保留的引用。当您设置集合视图的布局时,集合视图会将布局的 collectionView 属性 设置回集合视图。

两个对象之间的大多数通信都是通过集合视图向布局发送消息并从这些消息接收 return 值来实现的。许多消息在 UICollectionViewLayout class 中公开声明,您可以通过制作 UICollectionViewLayout 和 implementing/overriding 方法的 subclass 来实现自己的布局回复这些消息。