UICollectionView的使用总结

对collectionView熟悉又陌生,熟悉是知道有这么个控件,陌生是因为使用的少,不熟练

一见到使用collectionView,马上想到五大步:

1.创建流水布局和布局的三个属性:cell的大小,最小行间距,最小列间距

UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];

这里要注意一定是UICollectionViewXXXLayout的格式,之前由于不注意,直接就敲成UICollectionViewLayout,导致cell显示不出来

1.1 为什么要设置cell大小呢,而tableView却不需要设置?

每个cell的大小,这里用itemSize属性描述,tableView的cell是整行显示的,大小是默认的,可以不用设置,但是collectionView是一行显示多个cell,能显示多少个,是由cell的大小决定的,所以得设置这种变量,但是前提是我们已经规定了一行显示多少个cell,然后人为计算出来大小,最后赋值,让系统内部再去根据大小算,去显示

总结为:算出cell大小,设定布局的itemSize属性

layout.itemSize = CGSizeMake(itemWH, itemWH);

1.2 最小列间距

layout.minimumInteritemSpacing = 1;

1.3 最小行间距

layout.minimumLineSpacing = 1;

这两个间距必须设置,因为默认这两个间距是10,一行显示多少个cell,不仅有cell的高度决定,还由间距决定,算cell宽的时候是按间距为1算的,虽有得改为1

2.创建collectionView

UICollectionView *collectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(0, 0, 0, 300) collectionViewLayout:layout];

先设定一个初始高度让它先显示,后面再有了数据,再根据内容重新计算它的高度,如果作为tableVIew的顶部和底部视图,这里的宽度和x,y不用管,系统会帮助设定,只需要管高度就行了

3.自定义cell

用自定义cell类和xib去描述

4.注册cell

[collectionView registerNib:[UINib nibWithNibName:@"XMSquareCell" bundle:nil] forCellWithReuseIdentifier:ID];

5.遵守协议,设置代理,实现代理方法

你可能感兴趣的:(UICollectionView的使用总结)