美文网首页
UICollectionView初涉

UICollectionView初涉

作者: 牛程程 | 来源:发表于2017-11-08 21:07 被阅读0次

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一个新类,可以实现很多酷炫的动画。例如:引导页、轮播图、瀑布流视图...

相关文章

  • UICollectionView初涉

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

  • 初涉.

  • 初涉

    环境造就格局预定义人生, 人们忽略换位想掌控乾坤。 骄傲而固执的人认为世间没有对错, 平静的银河系中无数的星系在黑...

  • 初涉npm

    NPM是什么 NPM(node package manager Node包管理器)以往的Web开发中,JS文件数量...

  • 诗坛初涉

    诗坛初涉 写了多少首, 我从未细数; 改了多少次, 也未在意。 怎知道, 语言是否传统。 怎知道, 又有多少层次...

  • 初涉webpack

    什么是webpack? 本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(mod...

  • 诗坛初涉

    七绝 初涉诗坛 天外孤鸿-詹 初登大雅君休笑,巧艺沽空盼论心。 一字恩深同再造,推敲賈岛始成吟。

  • 工笔初涉

    小田老师的书画课前阵子开始教画画了,我们这帮学生三天打鱼两天晒网的,当然也不着急,慢悠悠的学,慢悠悠的画。尤其是工...

  • 初涉管理

    1.自己的立场非常重要 在复杂的机关当中,每个人都有自己的立场领导有领导的立场。二级单位有二级单位的立场,但是要时...

  • 初涉谈判

    最近的一次谈判,费劲周折才安排好时间,也计划了很多次,预想过各种场景,设定好了初步谈判目的、优选方案、次选方案和最...

网友评论

      本文标题:UICollectionView初涉

      本文链接:https://www.haomeiwen.com/subject/suuymxtx.html