关闭

iOS UICollectionView那些我”错过”的API

标签: ios
117人阅读 评论(0) 收藏 举报
分类:

前言: 这是博主在学习旧知识笔记中的一篇, 谁叫咱入门晚呢, 学习的过程中, 不会的知识, 就是因为我们年轻而已(囧~) 我总是这样安慰自己(逃~), 所以我们需要补充一下”错过”的重要的东西, 下面列出了本文会提到的一些概念. 如不感兴趣直接退出即可
UICollectionView, UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout, UICollectionViewLayout

在开始之前先有必要回忆一下UICollectionView

使用collectionView有一段时间了, 进行一个简单的总结和理解~~~.
UICollectionView是一种类似于UITableView不同于UITableView的布局方式.

  • Cells 用于展示内容的主体,对于不同的cell可以指定不同尺寸和不同的内容, 且可以复用(一般需要自定义 没有提供类似于tableview那么多的属性).
  • Supplementary Views 追加视图 可以理解为tableView每个Section的Header或者Footer,用来标记每个section的view, 且也可以被复用.
  • Decoration Views 装饰视图 这是每个section的背景, 且也可以被复用.

关于Cell的说明:

  • 首先是cell本身作为容器view
  • 然后是一个大小自动适应整个cell的backgroundView,用作cell平时的背景
  • 再其上是selectedBackgroundView,是cell被选中时的背景
  • 最后是一个contentView,自定义内容应被加在这个view上

UICollectionViewDataSource

实现上面三个方法, 基本就可以正常工作了.

UICollectionViewDelegate

进行一些行为操作时候用到的

  • cell的高亮
  • cell的点击
  • cell的选中状态等等.
对于点击cell发生哪些行为做一个说明

1collectionView:shouldHighlightItemAtIndexPath: 是否应该高亮?
2collectionView:didHighlightItemAtIndexPath: 如果1回答为是,那么高亮
3collectionView:shouldSelectItemAtIndexPath: 无论1结果如何,都询问是否可以被选中?
4collectionView:didUnhighlightItemAtIndexPath: 如果1回答为是,那么现在取消高亮
5collectionView:didSelectItemAtIndexPath: 如果3回答为是,那么选中cell

UICollectionViewDelegateFlowLayout

可以对cell的大小, 间隙进行调整 使用协议的方式

UICollectionViewFlowLayout

是UICollectionViewLayout(稍后会提到)的子类, 他提供一些对cell进行简单设置的属性, Flow Layout简单说是一个直线对齐的layout.

UICollectionViewLayout

它负责了将各个cell、Supplementary View和Decoration Views进行组织,为它们设定各自的属性.可以有:位置, 尺寸, 透明, 层级, 形状, 等等. 所以自定义各种样式的布局就需要自定义Layout了.
实现一个自定义layout一般继承于UICollectionViewLayout然后需要重写以下几个方法:

注意: UICollectionViewLayout实例化之后, 有一些方法将自动被调用

需要更新layout时, 调用这个方法 有点UIView的setNeedsLayout的意思…

说了这么多, 我觉得我理解的更深一点了, 你呢?
说的再多不如show you my demo 稍后有时间补上… [大笑.png]
这里是官方的一个Dmeohttps://github.com/mpospese/CircleLayout.git

End

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

iOS开发之UICollectionView之悬浮效果实现

1. 流程大概如下。      1. 获取所有当前屏幕上展示的所有Item. 包含Cell, header, footer; 获取到一个数组。SuperArray     2. 通过遍历上面的数组...
  • zhonggaorong
  • zhonggaorong
  • 2016-09-30 11:57
  • 1666

UICollectionView 设置不同的 Section 背景颜色

UICollectionView 无法通过属性设置或数据源来为不同的 Section 设置不同的背景颜色,要想达到这样的效果就需要自定义自己的布局对象(UICollectionViewLayout)。...
  • PandaDevelop
  • PandaDevelop
  • 2016-11-17 01:35
  • 1843

ios开发——解决UICollectionView的cell间距与设置不符问题

在用UICollectionView展示数据时,有时我们希望将cell的间距调成一个我们想要的值,然后查API可以看到有这么一个属性: ? 1 2 3 - (CGFl...
  • wangrui13931182709
  • wangrui13931182709
  • 2016-03-03 12:33
  • 2349

iOS UICollectionView 不规则排序

  • 2017-12-01 10:48
  • 170KB
  • 下载

iOS UICollectionView(2nd) 无水印pdf

  • 2017-09-26 20:50
  • 2.98MB
  • 下载

iOS UIcollectionView

  • 2017-08-22 16:55
  • 138KB
  • 下载

iOS开发UITabBarController和UICollectionView的使用Demo

  • 2016-04-11 15:43
  • 76KB
  • 下载

AWP.iOS.UICollectionView.2nd.Edition.

  • 2017-11-19 23:53
  • 3.26MB
  • 下载

集合视图UICollectionView 表格 布局 iOS

  • 2016-05-26 16:43
  • 62KB
  • 下载

iOS瀑布流及各种UICollectionView样式

  • 2016-01-27 10:04
  • 75KB
  • 下载
    个人资料
    • 访问:33404次
    • 积分:509
    • 等级:
    • 排名:千里之外
    • 原创:5篇
    • 转载:78篇
    • 译文:0篇
    • 评论:2条
    文章分类
    最新评论