知識點
1.UICollectionView的創立
2. UICollectionView的常用代理辦法
3. UICollectionView相關XIB操作
================================
UICollectionView的創立
1.UICollectionViewLayout
作用:控制collectionView規劃的一個籠統類
留意:普通不直接運用這個類,由於這個類很多辦法都沒有完成,只是規則了很多屬性和辦法,自已定義規劃需求創立一個類承繼UICollectionViewLayout,然後設定自定義規劃
2.UICollectionViewFlowLayout
作用:零碎寫好的一個瀑布流規劃
//運用零碎寫好的一個瀑布流規劃
UICollectionViewFlowLayout *layout = [UICollectionViewFlowLayout new];
/*
UICollectionViewScrollDirectionVertical,
UICollectionViewScrollDirectionHorizontal
*/
//設置滑動的方向
layout.scrollDirection = UICollectionViewScrollDirectionVertical;
//設置item之間的最小間距(豎直滑動的時分,表示的橫向間距,程度滑動的時分,表示的是縱向間距)
layout.minimumInteritemSpacing = 35;
//設置item之間的最小間距(豎直滑動的時分,表示的縱向間距,程度滑動的時分,表示的是橫向間距)
layout.minimumLineSpacing = 10;
3.- (instancetype)initWithFrame:(CGRect)frame collectionViewLayout:(UICollectionViewLayout *)layout;
作用:創立一個UICollectionView,必需提供一個UICollectionViewLayout
//實例化一個UICollectionView
UICollectionView *collectionView = [[UICollectionView alloc] initWithFrame:self.view.bounds collectionViewLayout:layout];
4.協議代理
1)UICollectionViewDataSource
2)UICollectionViewDelegateFlowLayout
================================
UICollectionView的常用代理辦法
#pragma mark- UICollectionView的代理辦法
1.- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
作用:前往組數
-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{
return 10;
}
2.- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section;
作用:前往元素個數
//前往每組當中一切的元素個數
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
return 10;
}
3.- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath;
作用:前往元素所運用的UICollectionViewCell
//前往每個元素所運用的UICollectionViewCell對象
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
//去復用隊列查找cell
UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cell" forIndexPath:indexPath];
//改動背風光
cell.backgroundColor = [UIColor redColor];
return cell;
}
4.- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath;
作用:前往元素的CGSize大小
//修正每一個item的寬度和高度
-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{
return CGSizeMake(100, 100);
}
5.- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section;
作用:前往元素之間允許的最小間距,假如是程度滑動,則代表垂直間隔,假如豎直滑動,則代表橫向間隔
//效果同layout.minimumInteritemSpeacing,二選一
-(CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section{
}
6.- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section;
作用:前往元素之間允許的最小間距,假如是程度滑動,則代表橫向間隔,假如豎直滑動,則代表垂直間隔
//效果同layout.minimumLineSpacing,二選一
-(CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section{
}
7.- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section
作用:控制一組視圖和屏幕邊界的(上,左,下,右)間隔
//前往每一組元素跟屏幕4個邊界的間隔(上,左,下,右)
-(UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section{
//創立一個UIEdgeInsets的構造體
return UIEdgeInsetsMake(10, 10, 10, 10);
}
8.- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section
作用:前往頭部視圖的CGSize,假如是程度滑動,則寬度無效,假如是豎直滑動,只要高度無效
//前往頭部視圖的寬和高
-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section{
//留意:假如是豎直滑動,則只要高度無效,假如是程度滑動,則只要寬度無效
return CGSizeMake(50, 50);
}
9.- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath
作用:前往頭部視圖
//前往頭部和尾部視圖所運用的UICollectionReusableView對象
-(UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath{
//由於頭部和尾部視圖的實例化都需求調用此辦法,所以需求經過kind判別生成的是頭部視圖還是尾部視圖
if ([kind isEqualToString:UICollectionElementKindSectionHeader]) {
//表示需求創立頭部視圖
//復用方式創立頭部視圖
UICollectionReusableView *headerView = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"header" forIndexPath:indexPath];
//改動背風光
headerView.backgroundColor = [UIColor greenColor];
return headerView;
}
return nil;
}
10.- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath;
作用:選中某個元素
//選中某一個item
-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{
NSLog(@"第%ld組第%ld個",indexPath.section,indexPath.item);
}
【iOS開發-UI (三)Collection】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!