zoukankan      html  css  js  c++  java
  • 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属性。

  • 相关阅读:
    java8
    Python isinstance()
    Python3 File next()
    np.array() 与 np.mat() 比较
    np.nonzero()
    np.dot()
    算法之归并排序的应用 —— 小和问题以及逆序对问题
    递归过程以及递归master公式
    算法之异或运算及其应用
    算法之二分法及其应用
  • 原文地址:https://www.cnblogs.com/junwang/p/2574895.html
Copyright © 2011-2022 走看看