UICollectionView初涉

iOS6.0之后,提供了UICollectionView。与UITableView相似,但是也有很多不同。

1、首先需要引入除了UICollectionViewDelegate,UICollectionViewDataSource之外的UICollectionViewDelegateFlowLayout。

2、在创建实例的时候,要注意

UICollectionView *collectionView = [UICollectionView new];

这样生成会崩溃。必须是

//注意 UICollectionViewFlowLayout 不是UICollectionViewLayout。UICollectionViewFlowLayout是UICollectionViewLayout的子类。
UICollectionViewFlowLayout *collectionLayout = [UICollectionViewFlowLayout new];
UICollectionView *collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout: collectionLayout];

UICollectionViewFlowLayout用来控制布局的。有一些常用的属性:

@property (nonatomic) CGFloat minimumLineSpacing;//每行的距离
@property (nonatomic) CGFloat minimumInteritemSpacing;//每个cell的距离
@property (nonatomic) CGSize itemSize;//每个cell的大小,如果每个cell的大小不一样,就不要设置这个属性。
@property (nonatomic) UIEdgeInsets sectionInset;//每个section的相对距离
@property (nonatomic) UICollectionViewScrollDirection scrollDirection;//视图滑动的方向

在创建完UICollectionView实例后,才能设置上面的属性。否则是无效的。

3、UICollectionView 也有UITableView一样的方法

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

在实现的时候,却是不同的。UICollectionViewCell不需要判断是否为空。在视图初始化的时候,必须注册Cell,系统生成在缓冲区中自动获取。
错误:

UICollectionViewCell *collectionCell = [UICollectionViewCell new];
if (! collectionCell)
 {
           collectionCell = [collectionView dequeueReusableCellWithReuseIdentifier:@"collectionCell"];
 }

正确:

UICollectionViewCell *collectionCell = [collectionView dequeueReusableCellWithReuseIdentifier:@"collectionCell"];

4、很多时候是需要自定义UICollectionViewCell。在重写创建方法的时候

-(id)init;//重写这个方法是无效的。不会调用重写的方法。

//应该使用-(id)initWithFrame:(CGRect)frame;

-(id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if(self)
    {
        //需要调用的方法。
    }
    return self;
}

自定义UICollectionViewFlowLayout一个新类,可以实现很多酷炫的动画。例如:引导页、轮播图、瀑布流视图...

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,804评论 4 61
  • 翻译自“Collection View Programming Guide for iOS” 0 关于iOS集合视...
    lakerszhy阅读 9,389评论 1 22
  • 一、UICollectionView介绍 UICollectionView和UICollectionViewCon...
    无沣阅读 10,107评论 4 18
  • 什么是UICollectionView? UICollectionView是一种新的数据展示方式,简单来说可以把他...
    凌峰Mical阅读 43,586评论 11 201
  • 午加餐:面包晚水果:猕猴桃,梨 参考目标: 1份肉2份豆制品3份“新鲜”水果4份谷物/薯5份蔬菜,深绿色叶菜最好6...
    静趣_儿童心理师阅读 1,805评论 0 1

友情链接更多精彩内容