UICollectionView--九宫格

它是苹果提供的一种瀑布流效果
它与tableView相似,但是UICollectionView中我们设计的是他的Item,它用item进行显示, 它可以等于cell的大小,但是cell不能够等于他的大小,

    UICollectionViewFlowLayout *flowLayout = [UICollectionViewFlowLayout alloc]init];
//设计item大小
    flowLayout.itemSize = CGSizeMake(200,160);
//设置行间距
    flowLayout.minimumLineSpacing = 2;
//设置列间距
    flowLayout.minmumInteritrmSpacing = 2;
//设置滚动方式,默认是垂直方向
        flowLayout.scrollDirection = UICollectionViewScrollDirectionHorizontal;
//创建一个collectionView
    UICollectionView *collectionView = [UICollectionView alloc]initWithFrame:CGRectMake:(0,0,self.view.frame.size.width,self.view.frame.size.height) collectionViewLayout:flowLayout];
//签订两个和tableView相似的协议,dataSource 和 delegate;
    collectionView.delegate = self;
    collectionView.dataSource = self;
    collectionView.backGroundColor = [UIColor yellowColor];
    [sefl.view addSubview:collectionView];
    [collectionView release];

他也需要设定cell 写一个继承于UICollectionViewCell的myCell
给设定一条属性uilabel

//进行初始化
- (instancetype)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if(self){
        self.myLabel= [[UILabel alloc]initWithFrame:CGRectMake(0, self.contentView.frame.size.height - 50, self.contentView.frame.size.width, 50)];
        [self.contentView addSubview:self.myLabel];
}
return self
}

UICollectionView需要通过注册的方式创建cell
//第一个参数:需要指定注册对象的类型
//第二个参数:重用标志

[collectionView registerClass:[myCell class ] forCellWithReuseIdentifier:@"reuse"];

和tableView一样 写两个必须实现的方法

- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
    return 9;//九宫格

}
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
// 在collectionCell的创建时候,提供了另一种不同于tableView的cell创建方法
    MyCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"reuse" forIndexPath:indexPath];
    //只要通过注册的方式创建的cell,在取值的时候就不需要再进行是否为空的判断
    cell.contentView.backgroundColor = [UIColor cyanColor];
    cell.titleLabel.text = [NSString stringWithFormat:@"%ld",indexPath.row];
    return cell;
}

你可能感兴趣的:(ios,九宫格)