你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS開發-UI (三)Collection

iOS開發-UI (三)Collection

編輯:IOS開發綜合

知識點

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】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved