1

私はXIBファイルからインスタンスUICollectionViewControllerで実行されます、次のコードを持つだけで混乱している:UICollectionViewがデフォルトでUICollectionViewDelegateFlowLayoutに準拠しているのはなぜですか?

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

プロトコルUICollectionViewDelegateFlowLayoutで宣言されています。しかし、UICollectionViewControllerで宣言されたとして、それは、このプロトコルに準拠することを示すUICollectionViewControllerにどこにもありません:UICollectionViewControllerUICollectionViewDelegateFlowLayoutに準拠する理由

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

はとにかく説明できますか?デフォルトでは

答えて

0

、XIB /ストーリーボードにドラッグコレクションビューのレイアウトのクラスは、デフォルトではUICollectionViewDelegateFlowLayoutためのデリゲートメソッドが呼び出される理由である、UICollectionViewFlowLayoutです。 xib/storyboard内のレイアウトオブジェクトのクラスを変更する場合は、UICollectionViewDelegateFlowLayoutに固有のメソッドは呼び出されません。

また、UICollectionViewControllerは、私的にはUICollectionViewDelegateFlowLayoutに準拠していてもよく、そうでなくてもよい。クラスがという技術的にでない場合、そのプロトコルのメソッドを実装して応答するためには、プロトコルに明示的に準拠しなければならないので、実際には問題になりません。

関連する問題