GeekBand.iOS-UICollectionView

2016/3/29 posted in  iOS学习笔记  
虽然tableView可以提供很强大的数据展示功能。但是它还是有一定的局限性的,那就是在一些媒体展示时不够灵活,一行只能展示一个item。
为了克服这样的情况,最初的大神们都是使用自定义table。但是从iOS6开始,苹果为我们提供了一个新的View组件,CollectionView。
它对TableView的优化:
- 对表格的自然扩展:网格式界面
- 对表格内部职责进一步细分:分离Layout

CollectionView实例

CollectionView

CollectionView界面构成

CollectionView

ps.CollectionView可以通过自定义Layout子类实现cells位置自定义。

说明

Collection的总体结构与Table相似,但是需要注意以下几点:
- cell在collection中被称为item
- header/footer被称为supplementary view
- item view必须register
- 布局要交给独立的Layout子类,edit方法不再指定动画类型

Cell(Item)供应

基本使用

  1. 创建CollectionView对象
  2. 提供DataSource(实现UICollectionViewDataSource协议)

    //返回item的数量
    - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section;
    
    //返回item实例
    - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath;
    

交互

UICollectionView的交互能力强大,除了索引,tableView有的都有。实现UICollectionViewDelegate协议

  • 点选
  • 编辑格子

    • 插入、删除
    • 移动格子的位置
  • 刷新数据

  • 将一组编辑或刷新动作合并到一个动画过程里

  • 滚动到某个格子

  • 动态更换布局

交互响应机会

刷新CollectionView

  • reloadData 全部刷新
  • reloadSection 刷新某个section
  • reloadItemsAtIndexPaths 刷新某个cell

手工移动格子

参考资料

wwdc2012-205
wwdc2012-219