UICollectionView

最近做需求做到了和 UICollectionView 相关的内容,特此补充整理知识漏洞

UICollectionView 包含多个子类 (subclass) 和协议 (protocol)

  1. 最高级别的控制和管理
    1. UICollectionView → 和 UITableView 一样,作为 UIScrollView 的继承子类,是主要展示内容的页面 作为一个容器,一个中间者,连接起五个不同的部分,并通知和引导数据的流通。
    2. UICollectionViewController
  2. 内容管理
  3. UIViewCollectionDataSource → 供给对应数据来源,告诉 UICollectionView 有几个 section,以及 section 当中应该展示的个数
    1. UIViewCollectionDelegate
      1. 处理事件顺序
        1. 手指按下
          1. shouldHighlightItemAtIndexPath → Yes 则向下执行,No 则到此为止
          2. didHighlightItemAtIndexPath → 高亮
        2. 手指松开
          1. didUnHighlightItemAtIndexPath → 取消高亮
          2. shouldSelectHighlightItemAtIndexPath → Yes 则向下执行,No 则到此为止
          3. didSelectItemAtIndexPath → 执行选择事件
  4. 展示
    1. UICollectionViewCell
      1. 和 UITableViewCell 类似,这些 Cells 作为 CollectionViewCell 的子类,组成了对应的页面内容 
      2. 通过 registerClass:forCellReuseIdentifier: 或 registerNib:forCellReuseIdentifier: 来实现添加自定义的子 Cell
      3. 可以通过
    2. UICollectionReusableView
      1. 当有其他的信息需要在 CollectionView 中展示,但他们不应该在 Cell 里面时,可以利用 supplementary view,一般包含 header 和 footer。
      2. 通过 registerClass:forSupplementaryViewOfKind:withReuseIdentifier: 或 registerNib:forSupplementaryViewOfKind:withReuseIdentifier: 来添加对应的自定义子Cell
  5. 布局
    1. UICollectionViewLayout → 告诉 UICollectionView 中每个 section 的大小和位置信息,可以改变对应视图的大小,位置以及其他的属性
      1. 常用属性:
        1. minimumLineSpacing 行间距,但在每行内 cell 大小都不一致的情况下, 会计算上行最底和下行最顶的间距
        2. minimumInterItemSpacing 列间距
        3. UICollectionViewScrollDirection 滑动方向
    2. UICollectionViewLayoutAttributes → 定义了 UICollectionView 的一些其他属性,例如边框,中心点,大小,是否可隐藏等等属性
    3. UICollectionViewUpdateItem
  6. 流动布局
    1. UICollectionFlowLayout → 用于实现如 grids 或者其他 line-based 的页面布局。 
    2. UICollectionDelegateFlowLayout

众多子类和协议中, UICollectionViewDataSource (datasource 实现),UICollectionViewDelegate 和 UICollectionViewDelegateFlowLayout(controller 实现)。

发表评论

邮箱地址不会被公开。 必填项已用*标注