iOS開發UI階段——第十五節 UICollectionView

集合視圖的創建必須指定布局,如果沒有布局,則顯示不了任何東西,所以在創建集合視圖對象之前必須先創建一個布局對象

采用系統布局類UICollectViewLayout(布局基類)

UICollectionViewFlowLayout*layout = [[UICollectionViewFlowLayout alloc]init];

設置布局對象的相關屬性

設置最小的行間距(默認是10)layout.minimumLineSpacing = 20;

設置item與item之間的間距layout.minimumInteritemSpacing = 10;

設置每個item的尺寸大小layout.itemSize = CGSizeMake((kWidth - 45) / 3, 100);

設置集合視圖的分區間隔(上,左,下,右)layout.sectionInset = UIEdgeInsetsMake(10, 10, 10, 10);

設置集合視圖的滑動方向layout.scrollDirection=UICollectionViewScrollDirectionVertical;//豎向滾動

創建集合視圖

UICollectionView *collectionView = [[UICollectionView alloc]initWithFrame:[UIScreen mainScreen].bounds collectionViewLayout:layout];

集合視圖想要顯示內容,必須將cell進行注冊

[collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:string];

集合視圖包含以下代理

UICollectionViewDataSource 數據源協議

UICollectionViewDelegate 代理協議 ?(其中的方法與UITableView的代理協議相似)

布局包含的代理

UICollectionViewDelegateFlowLayout

UICollectionViewDataSource協議包含的方法(前兩個必須實現)

//設置每個分區包含的item個數

- (NSInteger)collectionView:(UICollectionView*)collectionView numberOfItemsInSection:(NSInteger)section;

//設置每個需要顯示的cell

- (UICollectionViewCell*)collectionView:(UICollectionView*)collectionView cellForItemAtIndexPath:(NSIndexPath*)indexPath;

//設置包含的分區個數

- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView*)collectionView;

//設置增廣視圖,即每個分區的頭視圖或者尾視圖

- (UICollectionReusableView*)collectionView:(UICollectionView*)collectionView viewForSupplementaryElementOfKind:(NSString*)kind atIndexPath:(NSIndexPath*)indexPath;

UICollectionViewDelegateFlowLayout協議包含的方法

//返回每個item的尺寸大小

- (CGSize)collectionView:(UICollectionView*)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath*)indexPath;

//返回視圖與屏幕邊緣的距離

- (UIEdgeInsets)collectionView:(UICollectionView*)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section;

//返回最小的行間距

- (CGFloat)collectionView:(UICollectionView*)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section;

//返回item與item之間的距離

- (CGFloat)collectionView:(UICollectionView*)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section;

//返回分區頭視圖的尺寸大小

- (CGSize)collectionView:(UICollectionView*)collectionView layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section;

//返回分區尾視圖的尺寸大小

- (CGSize)collectionView:(UICollectionView*)collectionView layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForFooterInSection:(NSInteger)section;

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容