CollectionView.collectionViewLayout 与 uicollectionViewFlowLayout 的关系
Relationship between CollectionView.collectionViewLayout and collectionViewFlowLayout
Apples api 显示:collectionView.collectionViewLayout 是一个 UICollectionViewLayout 类型,它继承自 NSObject 。如果我编码它可以很好地工作
UICollectionViewFlowLayout *layout = (UICollectionViewFlowLayout *)self.collectionView.collectionViewLayout;
layout.minimumLineSpacing = 0.5;
从这段代码我猜collectionViewLayout的类型是:UICollectionViewFlowLayout.
但是如果我像这样自定义定义继承自 UICollectionViewLayout 的布局:
self.collectionView.collectionViewLayout = [[CustomCollectionViewLayout alloc]init];
UICollectionViewFlowLayout *layout = (UICollectionViewFlowLayout *)self.collectionView.collectionViewLayout;
layout.minimumLineSpacing = 0.5;
它崩溃并显示:
-[CustomCollectionViewLayout setMinimumLineSpacing:]: unrecognized selector sent to instance 0x111d0b840
这个结果与我的猜测相反,谁能解释一下,非常感谢
那是因为 UICollectionViewFlowLayout
是 UICollectionViewLayout
的子类。
UICollectionViewFlowLayout
有一个名为 minimumLineSpacing
的 属性 而 UICollectionViewLayout 没有。
因此当你调用
layout.minimumLineSpacing = 0.5;
在您的布局上 UICollectionViewLayout
应用程序崩溃。
希望对您有所帮助
UICollectionViewFlowLayout
是 UICollectionViewLayout
的子类,minimumLineSpacing
是 UICollectionViewFlowLayout
的 属性 而不是 UICollectionViewLayout
。
如果您的 CustomCollectionViewLayout
是 UICollectionViewLayout
的子类而不是 UICollectionViewFlowLayout
,则设置 minimumLineSpacing
会崩溃
Apples api 显示:collectionView.collectionViewLayout 是一个 UICollectionViewLayout 类型,它继承自 NSObject 。如果我编码它可以很好地工作
UICollectionViewFlowLayout *layout = (UICollectionViewFlowLayout *)self.collectionView.collectionViewLayout;
layout.minimumLineSpacing = 0.5;
从这段代码我猜collectionViewLayout的类型是:UICollectionViewFlowLayout.
但是如果我像这样自定义定义继承自 UICollectionViewLayout 的布局:
self.collectionView.collectionViewLayout = [[CustomCollectionViewLayout alloc]init];
UICollectionViewFlowLayout *layout = (UICollectionViewFlowLayout *)self.collectionView.collectionViewLayout;
layout.minimumLineSpacing = 0.5;
它崩溃并显示:
-[CustomCollectionViewLayout setMinimumLineSpacing:]: unrecognized selector sent to instance 0x111d0b840
这个结果与我的猜测相反,谁能解释一下,非常感谢
那是因为 UICollectionViewFlowLayout
是 UICollectionViewLayout
的子类。
UICollectionViewFlowLayout
有一个名为 minimumLineSpacing
的 属性 而 UICollectionViewLayout 没有。
因此当你调用
layout.minimumLineSpacing = 0.5;
在您的布局上 UICollectionViewLayout
应用程序崩溃。
希望对您有所帮助
UICollectionViewFlowLayout
是 UICollectionViewLayout
的子类,minimumLineSpacing
是 UICollectionViewFlowLayout
的 属性 而不是 UICollectionViewLayout
。
如果您的 CustomCollectionViewLayout
是 UICollectionViewLayout
的子类而不是 UICollectionViewFlowLayout
,则设置 minimumLineSpacing
会崩溃