码迷,mamicode.com
首页 > 其他好文 > 详细

第二十一讲.UICollectionView(集合视图)以及瀑布流效果, 通知中心(NSNotificationCenter).

时间:2015-10-09 20:01:26      阅读:290      评论:0      收藏:0      [点我收藏+]

标签:

一.集合视图(UICollectionView)

1.集合视图的概念

技术分享

 

技术分享

 

2.如何创建

技术分享

 

3.集合视图的布局UICollectionViewFlowLayout

 

技术分享

 

 

4.自定义cell和 布局协议UICollectionViewDelegateFlowLayout

     使用时cell一般选择自定义,而在布局时候要使用代理.

 

 UICollectionView的基本使用示例代码分析:

 

#import "ViewController.h"
#import "CollectionReusableView.h"

@interface ViewController ()<UICollectionViewDataSource,UICollectionViewDelegate,UICollectionViewDelegateFlowLayout>

@property(nonatomic,strong)UICollectionView *collectionView;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    [self loadCollectionView];

    //注册方法创建UICollectionView
    [self.collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"CELL"];
    
 
}

-(void)loadCollectionView
{
    //布局类 控制每一个item的样式
    UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init];
    flowLayout.itemSize = CGSizeMake(100, 100);
    
    //改变上下行的大小(默认是10)
    flowLayout.minimumLineSpacing = 20;
    
    //设置两个item中间的大小(默认为10)
    flowLayout.minimumInteritemSpacing = 37.5;

    //控制举例屏幕的距离  上 左 下 右
    //flowLayout.sectionInset = UIEdgeInsetsMake(100, 100, 100, 0);
    
    
    //横向滑动
    //flowLayout.scrollDirection = UICollectionViewScrollDirectionHorizontal;
    
    

    self.collectionView = [[UICollectionView alloc]initWithFrame:self.view.frame collectionViewLayout:flowLayout];
    //背景色
    self.collectionView.backgroundColor = [UIColor whiteColor];
    self.collectionView.delegate = self;
    self.collectionView.dataSource = self;

    [self.view addSubview:self.collectionView];

    
    //注册haeder和footer方法
     //给collectionView 注册一个headerView
    [self.collectionView registerClass:[CollectionReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"Header"];
    //给collectionView 注册一个footerView
      [self.collectionView registerClass:[UICollectionReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionFooter withReuseIdentifier:@"Footer"];
    
    

}


//返回header和footer  设置header和footer
-(UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath
{


    if ([kind isEqualToString:UICollectionElementKindSectionHeader]) {
        UICollectionReusableView *header = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"Header" forIndexPath:indexPath];
        
        return header;
    }  else{
    
        UICollectionReusableView *footer = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionFooter withReuseIdentifier:@"Footer" forIndexPath:indexPath];
        
        return footer;
    
    
    }
   

}



//设置collectionView的Footer和header的大小-------UICollectionViewDelegateFlowLayout代理方法----------
//设置collectionView的Footer的大小
-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout referenceSizeForFooterInSection:(NSInteger)section
{

    return CGSizeMake(100, 100);
}


//设置collectionView的header大小
-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section
{

 return CGSizeMake(100, 100);

}




//创建UICollectionView时,需要实现的两个代理方法-----------------------------------

-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
    return 100;


}

-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
    //UICollectionViewCell 没有本身携带的控件,就是一个空白的
    //所以在项目中一般都自定义一个UICollectionViewCell
    UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"CELL" forIndexPath:indexPath];
    //设置背景颜色
    cell.backgroundColor = [UIColor redColor];
    
    return cell;

}

 


 

 

二.通知中心(NSNotificationCenter)

 

第二十一讲.UICollectionView(集合视图)以及瀑布流效果, 通知中心(NSNotificationCenter).

标签:

原文地址:http://www.cnblogs.com/erdeng/p/4864853.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!