为什么UICollectionView默认符合UICollectionViewDelegateFlowLayout?

时间:2016-05-27 20:42:40

标签: ios objective-c uicollectionview protocols uicollectionviewdelegate

我只是对以下代码感到困惑,这些代码在从xib文件实例化的UICollectionViewController中执行:

- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section {
    return 1.0;
}

在协议UICollectionViewDelegateFlowLayout中声明。但是,UICollectionViewController中没有任何地方表明它符合此协议,如UICollectionViewController中声明的那样:

NS_CLASS_AVAILABLE_IOS(6_0) @interface UICollectionViewController : UIViewController <UICollectionViewDelegate, UICollectionViewDataSource>

无论如何可以解释为什么UICollectionViewController符合UICollectionViewDelegateFlowLayout

1 个答案:

答案 0 :(得分:0)

默认情况下,拖动到xib / storyboard时集合视图布局的类是UICollectionViewFlowLayout,这就是为什么默认调用UICollectionViewDelegateFlowLayout的委托方法的原因。如果您要在xib / storyboard中更改布局对象的类,则不会调用特定于UICollectionViewDelegateFlowLayout的任何方法。

此外,UICollectionViewController可能会私下符合UICollectionViewDelegateFlowLayout,或者可能不符合int[] dim = myObject.getCoord(); 。它并不重要,因为一个类在技术上