UICollectionView
首先说到UICollectionViewFlowLayout 肯定是少不了UICollectionView的啦,
为什么我要讲UICollectionView呢?
因为最近我做的界面都是要用到collectionView,对collectionView理解深了一些,而且我还发现了,现在很多项目都会用到collectionView,而且都是一些比较出名的app 例如:淘宝、京东,等等这些商城app,都是用到collectionView来做主页的。
当你collectionView用的好,你是可以完全代替tableView。但是,能用tableView就肯定用tableView啦,因为collectionView相当于来说是比较麻烦的....
为什么呢?因为UITableView的cell是系统自动布局好的,不需要我们布局。但UICollectionView的cell是需要我们自己布局的。所以我们在创建UICollectionView的时候必须传递一个布局参数,系统提供并实现了一个布局样式:流水布局(UICollectionViewFlowLayout)
UICollectionViewFlowLayout
tableView与collectionView的创建
tableView的创建 collectionView的创建他们的所在区别就是多了一个flowLayout。flowLayout就是用来布局collectionView的,上面已经提到了,tableView是系统自动布局好的,collectionView是要我们自己布局的。而flowLayout就是我们用来布局的类,它继承于UICollectionViewFlowLayout。
引导页制作
1.把UICollectionView的每个cell的尺寸设置为跟屏幕一样大;
layout.itemSize = [UIScreen mainScreen].bounds.size;
2.设置为水平滚动方向,设置水平间距为0.
// 设置间距layout.minimumLineSpacing =0;layout.minimumInteritemSpacing =0;
// 设置滚动方向(默认垂直滚动)layout.scrollDirection=UICollectionViewScrollDirectionHorizontal;
// 开启分页self.collectionView.pagingEnabled =YES;// 隐藏水平滚动条self.collectionView.showsHorizontalScrollIndicator =NO;// 取消弹簧效果self.collectionView.bounces =NO;
引导页普通的表格布局
普通的表格布局self.flowLayout.sectionInset = UIEdgeInsetsMake(5, 5, 5, 5);//section之间的间距
self.flowLayout.minimumInteritemSpacing = 5; // cell的纵向间距
self.flowLayout.minimumLineSpacing = 5;// cell的横向间距
cellforsize 普通的表格布局特殊表格布局
需要自定义一个类,继承于UICollectionViewFlowLayout
初始化方法:
prepareLayout为api的初始化方法 cell的主要布局先看看效果图
界面标签的cell 上面的layout已经布局好了,如果长度超过屏幕长度的话,就会自动换行。
每个标签cell的size
cellforsize 封装的size方法头部的cell : “已选择标签”、“擅长话题”、“特色语言”、“更多”的size
把他的size设置成这样就可以了,不用tableViewCell里面镶嵌一个collectionView那么复杂。
如果自定义layout,会发现一个问题,就是设置不到header和footer
如果需要 在prepareLayout加上
这样就可以用了。不加上的话是无效的。因为自定义的layout 你即使注册了rusableView 也不会走代理方法的。
网友评论