美文网首页iOS Developer
UICollectionView代码创建.以及和 TableVi

UICollectionView代码创建.以及和 TableVi

作者: YourFoot | 来源:发表于2017-05-03 23:48 被阅读0次

很久没更了,感觉学习的很基础的东西没什么好写的,网上也一大把,但是发现写博客的一大好处就是,你忘记了一个知识点可以翻开博客查找,还是得坚持.

UICollectionView代码创建

简介:
  UICollectionView是UIScrollView的子类,显示一组 UICollectionCell 或其子类
  UICollectionViewController有数据源,委托 (UICollectionViewDelegate),布局类
  1.数据源:UICollectionViewController.返回几行几列等方法
  2.委托:UICollectionViewDelegate,哪一列被点击打等方法.
  3.布局类:为每个 Cell 布局,如果想按网格布局,则可以使用 UICollectionViewFlowLayout,如果想自定义布局,可以创建 UICollectionViewLayout 的自定义子类.

UICollectionViewCell的 contentView 默认是没有子试图的,所以需要自定义 创建UICollectionViewCell的子类,来添加你想用来显示的东西

创建步骤

网上很多教程都直接在 ViewDidLoad 中创建,但是好像并没什么用,具体细节还有待深究,我的做法是直接将 ViewController 的 view 设置为 CollectionView(创建 UICollectionViewController 文件,并且设置为原始 viewController 的类)

  1. 声明一个全局变量 UICollectionView *coll,在 loadView 创建 UICollectionView,和 UICollectionViewFlowOut - (void)loadView { UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; _coll = [[UICollectionView alloc] initWithFrame:CGRectMake(0, 0, 500, 500) collectionViewLayout:layout]; self.view = _coll; _coll.backgroundColor = [UIColor whiteColor]; }

2.viewDidLoad 中注册 Cell ,以便重用,并且设置数据源和 DataSource代理为自己
- (void)viewDidLoad { [super viewDidLoad];

_coll.delegate = self;
_coll.dataSource = self;

// Register cell classes
[_coll registerClass:[CollectionViewCell class] forCellWithReuseIdentifier:reuseIdentifier];

// Do any additional setup after loading the view.

}

3.设置数据源
#pragma mark <UICollectionViewDataSource>

- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView {
return 1;
}


- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
return 4;
}
//注册 Cell
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
CollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:reuseIdentifier forIndexPath:indexPath];

cell.backgroundColor = [UIColor blueColor];

return cell;

}

4.布局可以实现在FlowOut 协议中的方法来设置 item 大小,外边距等,这个可以看下文档实现,到这里基本的代码构建就完成了

UICollectionView 和 UITableView 的不同之处

1.最大的不同在于,UITableView 只显示UITableViewCell 一列,而 UICollectionView 可以任意安排 UICollectionCell
2.UICollectionCell 的 contentView 没有子试图,需要自定义,UITableViewCell 可以用默认的

其他倒是都差不多

欢迎交流学习:ykkaixing@gmail.com

相关文章

网友评论

    本文标题:UICollectionView代码创建.以及和 TableVi

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