UICollectionView的一点笔记
因为只是个个人的学习纪录,所以地位的不同,会侧重不一,有啥意见的话,欢迎提出。文章不是完全体,所以大家看看就好。。。
花了点时间把WWDC相关的一点东西听完了,老实说效果并不是很好,听力本来就不好,还赶上了三哥。。。
在视频上主要由205和219这两讲,会逐渐的补全
##change set##
##1.205 未说明flow layout
大概的东西先记下来,其他的东西会在复听中慢慢补全,哎,学英语啊
首先是CollectionView的基本组成部分,一共由三部分组成:
1.Collection View
Cells
Supplementary View
Decoration View
Collection View在一定方面类似Table View(所以这里我倾向于在一定程度上类比table View来理解)
同样由UIScrollView继承而来,同样的也包含了delegate,dataSource
怎么样?有点熟悉的感觉吧,呵呵
其实在某些方面使用table View类比,学习UICollectionViewCell确实是非常好的方式(也省去一些重复讲解的麻烦)。
但是请注意,完全的照搬你会失望的。这就引出了下面我要讲的Layout这个东西。
2.UICollectionViewLayout
这是一个抽象类,我们可以通过实现子类完成一些以前需要实现复杂的展现方式(最后会有展示图片)。而且,这只会花费很小的代价,一个coverflow的效果,只是需要四个方法,大概50行代码。
切分出layout有什么意义,这个我的感觉就像是一个模板模式+策略的合体,保证了灵活的展示方式,可以在多种展现方式中快速切换。
那么layout如何指导collection view实现丰富的输出,实现了哪几种输出呢?
layout通过UICollectionViewLayoutAttribute,为collection view提供cell展现的特性:
position
size
opacity
zIndex
tranform(3D)
待续。。。(后继会讲解layout中相关的模板方法,以及调用的顺序和具体的作用)
呵呵,刚才想起来,坑爹的attribute怎么没讲呢,其实想放在下面和具体的layout来配套的,不过现在先补上吧:)
前述的所谓cell展现特性,其实就是attribute这货完成的,collection view如何完成布局排列,对于cell的处理,都要依靠自己当前的lay out当参谋,而这其中indexpath起到了纽带的作用,帮助layout完成设置对应indexpath的attribute属性。