您好,欢迎来到锐游网。
搜索
您的当前位置:首页UICollectionViewController 集合视图控制器

UICollectionViewController 集合视图控制器

来源:锐游网
概述: 
    UICollectionViewController 类似于 UITableViewController 是UICollectionView 与 控制器类的整合封装.其作用也就主要体现在UICollocationView

UICollectionViewController 基本属性

- (instancetype)initWithCollectionViewLayout:( *)layout
@property(nonatomic, retain) *collectionView
@property(nonatomic, readonly) *collectionViewLayout
@property(nonatomic) BOOL clearsSelectionOnViewWillAppear
@property(nonatomic, assign) BOOL useLayoutToLayoutNavigationTransitions

UICollectionView: 是一种新的数据展示方式, 简单来说可以把他理解成多列的UITableView. 
UICollectionView概述: 
标准的 UICollectionView 包含三个部分,他们都是UIView的子类:
  • Cells 用于展示内容的主体,对于不同的cell可以指定不同尺寸和不同的内容,这个稍后再说
  • Supplementary Views 追加视图 如果你对UITableView比较熟悉的话,可以理解为每个Section的Header或者Footer,用来标记每个section的view
  • Decoration Views 装饰视图 这是每个section的背景,比如iBooks中的书架就是这个----不管一个UICollectionView的布局如何变化,这三个部件都是存在的。

关于 UICollectionView 的实现:  
 实现一个UICollectionView 和实现一个UITableView基本上没有什么大的区别. 
    他们都是同样的datasource 和 delegate 设计模式: datasource为view提供资源, 告诉view要显示些什么以及如何显示他们, delegate提供一些样式的小细节以及用户交互的响应.
    同样有三个必须实现的协议方法:通过协议方法进行两个视图子类(cells/ supplementary views)的展示.
    需要注意的是, 对于Decoration views, 提供方法并不在UIControllerViewDataSource中, 而是直接在UICollectionViewLayout类中的(因为它仅仅于视图相关, 而与数据无关).
    同样具有重用机制. 但是需要注意的时,在UICollectionView中, 不仅cell可以重用, Supplement View 和 Decoration view 也可以并且应该被重用的. 
关于 UICollectionView 的代理:
    UICollectionViewDelegate: View的外形, 用户交互等由UICollectionViewDelegate来负责, 而数据的提供则有UICollectionViewDataSource负责.
关于Cell: 
    相对于UITableViewCell, UICollectionViewCell则相对简单,这主要是由于展示对象的性质决定的, 因为UICollectionView展示的对象更为灵活,因此需求也就千奇百怪. 因此SDK提供给我们的默认UICollectionViewCell在结构上比较简单, 由上至下:  cell本身的View/ backgroundView/ selectedBackgroundView/ contentView.
UICollectionViewLayout:
    UICollectionView的精髓.可以通过对其子类化实现对单元格的自定义布局, 这也就是UICollectionView 和 UITableView的最大区别了. UICollectionViewLayout可以说时UICollectionView的大脑和中枢, 它负责cell Supplementary View 和 Decoration Views 进行组织, 为他们设定各自的属性, 包括但不限于: 位置/ 尺寸/ 透明度/ 层级关系/ 形状/ 等等....
    Apple 为我们提供了一个最简答可能也是最常用的默认的layout对象, UICollectionViewFlowLayout. Flow Layout 简单说就是一个直线对其的layout. 通过对这个子类的子类化可以实现大部分的瀑布流类的简单实现.
总结:
    总的来说, 一个UICollectionView的实现必须包含两个必要的部分: UICollectionViewDataSource 和 UICollectionViewLayout分别提供展示的View内容和 展示的View的位置. 和一个交互部分:  UICollectionViewDelegate. 而 Apple给出的UICollectionViewFlowLayout已经是一个很强力的layout方案了.但是仅仅如此还是不够的. UICollectionView的强大之处, 就在于各种layout的自定义实现, 以及他们之间的切换.  

1. UICollectionView
    1.1 基本属性/方法

@property ( nonatomic ,   assign )   id <   >   delegate
@property ( nonatomic ,   assign )   id <   >   dataSource
代理
@property ( nonatomic ,   retain )   * backgroundView
背景视图
- ( void ) registerClass: ( Class ) viewClass
forSupplementaryViewOfKind: (  * ) elementKind
  withReuseIdentifier: (  * ) identifier
- ( id ) dequeueReusableCellWithReuseIdentifier: (  * ) identifier
                                forIndexPath: (  * ) indexPath
重用方法

@property ( nonatomic ,   retain )   * collectionViewLayout
- (void)setCollectionViewLayout:( *)layout
                       animated:(BOOL )animated
切换布局
- ( void ) reloadData
- ( void ) reloadSections: (  * ) sections
- ( void ) reloadItemsAtIndexPaths: (  * ) indexPaths
数据更新
- ( NSInteger )

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- ryyc.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务