UICollectionView 的应用 (集合视图)

来源:互联网 发布:南方cass软件多少钱 编辑:程序博客网 时间:2024/06/01 09:14

#import "ViewController.h"

#import "myCollectionCell.h"

#import "myCollectionHeadView.h"

#import "myCollectionFooterView.h"


@interface ViewController ()


@end


@implementation ViewController


- (void)viewDidLoad

{

    [superviewDidLoad];

    

    _allArr = [[NSMutableArrayalloc]initWithObjects:@"01.jpg",@"02.jpg",@"03.jpg",@"04.jpg",@"05.jpg",@"06.jpg",@"07.png",@"08.png",@"09.jpg",@"10.jpg",@"11.jpg",nil];

    

    self.view.backgroundColor = [UIColorgrayColor];

    

    self.mainView  = [UIViewnew];

    self.mainView.frame =self.view.frame;

    [self.viewaddSubview:_mainView];

    

    

    [selfaddCollectionView];

 

}

//  添加 collectionView

-(void)addCollectionView

{   //  创建布局

    UICollectionViewFlowLayout *layout =[[UICollectionViewFlowLayoutalloc]init];

    

    //布局 水平 与垂直方式默认是垂直

  

    //    layout.scrollDirection= UICollectionViewScrollDirectionHorizontal;     // default is UICollectionViewScrollDirectionVertical


    //   创建CollectionView

    _CollectionView = [[UICollectionViewalloc]initWithFrame:CGRectMake(0, 30,IPHONE_WIDTH ,IPHONE_HEIGHT-50)collectionViewLayout:layout];

    

//    //   设置头部

//    [layout setHeaderReferenceSize:CGSizeMake(_CollectionView.bounds.size.width, 30)];

//    

//    //  设置尾部

//    

//    [layout setFooterReferenceSize:CGSizeMake(_CollectionView.bounds.size.width, 30)];

   

    //  两个代理

    _CollectionView.dataSource =self;

    _CollectionView.delegate =self;

    

    // 现实下滑滚动条 默认是 yes

    _CollectionView.showsVerticalScrollIndicator =YES;

    _CollectionView.alwaysBounceVertical =YES;

    //    _CollectionView.alwaysBounceHorizontal= YES;

    _CollectionView.bounces =YES;   //  是否反弹 默认是 yes

    

    

  //  注册单元格  代码与xib

    [_CollectionViewregisterClass:[myCollectionCellclass] forCellWithReuseIdentifier:@"cell"];

//  [_CollectionView registerNib:<#(UINib *)#> forCellWithReuseIdentifier:<#(NSString *)#>]

    

 // 注册头部  代码与xib

   [ _CollectionViewregisterClass:[myCollectionHeadViewclass] forSupplementaryViewOfKind:UICollectionElementKindSectionHeaderwithReuseIdentifier:@"HeaderView"];

//    [_CollectionView registerNib:<#(UINib *)#> forSupplementaryViewOfKind:<#(NSString *)#> withReuseIdentifier:<#(NSString *)#>]

  

    

  // 注册尾部

    [_CollectionViewregisterClass:[myCollectionFooterViewclass] forSupplementaryViewOfKind:UICollectionElementKindSectionFooterwithReuseIdentifier:@"FooterView"];

    

    

    

    _CollectionView.backgroundColor = [UIColorcolorWithRed:0.466 green:1.000blue:0.306 alpha:1.000];

    

    [self.mainViewaddSubview:_CollectionView];

}



#pragma mark ---CollectionViewDataSource

//  分区单元格数

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

{


    return_allArr.count;


}

//  单元格 内容

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

{


    myCollectionCell * cell = [collectionViewdequeueReusableCellWithReuseIdentifier:@"cell"forIndexPath:indexPath];


    cell.imgView.image=[UIImageimageNamed:_allArr[indexPath.row]];


   return cell;

}

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

//{

//

//}


//  设置 补充元素 ---头尾内容

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

{

    UICollectionReusableView * reusebleView =nil;

    

    if (kind ==UICollectionElementKindSectionHeader)

    {

        myCollectionHeadView * HeaderView =[collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeaderwithReuseIdentifier:@"HeaderView" forIndexPath:indexPath];

        HeaderView.titlelable.text =@"collectionView 的头";

      

        reusebleView =HeaderView;

    }

    

   else

   

       if (kind ==UICollectionElementKindSectionFooter)

       {

           myCollectionFooterView * FooterView =[collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionFooterwithReuseIdentifier:@"FooterView" forIndexPath:indexPath];

           FooterView.titlelable.text =@"collectionView ";

         

           reusebleView =FooterView;

           

            FooterView.titlelable.frame =CGRectMake(0, 0, IPHONE_WIDTH, 20);

   

         }

       

   

   return reusebleView;

}


#pragma mark ---UICollectionViewDelegateFlowLayout   布局设置


/**

 

 - (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;

 - (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;


 */


// 每个cell  尺寸

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

{


   return CGSizeMake(100, 150);


}

//  最小的 行间距

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

{


   return 5;


}

//  最小的列间距

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

{


   return 0;

}

 //  头的尺寸


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

{


    return CGSizeMake(IPHONE_WIDTH, 20);


}

 //  尾的尺寸

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

{


      return CGSizeMake(IPHONE_WIDTH, 20);

}

// section 的内边距  设置 上/左/下/右 边距

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

{


   return UIEdgeInsetsMake(10, 10, 10, 10);

}


#pragma mark ------UICollectionViewDelegate

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath

{


    


}


@end

0 0
原创粉丝点击