zoukankan      html  css  js  c++  java
  • iOS-UICollectionView自定义布局

    UICollectionView自定义布局

    转载:

    http://answerhuang.duapp.com/index.php/2013/11/20/custom_collection_view_layouts/

    主要属性介绍

    UITableView和UICollectionView都是由data-source和delegate驱动的.使用起来两者相似.

    UICollectionViewCell相当于table view中的cell, 用法也是一样的.

    Supplementary views相当于table view的section header和footer views。像cells一样,他们的内容都由数据源对象驱动。然而,和table view中用法不一样的是,supplementary view并不一定会作为header或footer view;他们的数量和放置的位置完全由布局控制。从这个角度来讲,和cell差不多.

    Decoration views纯粹为一个装饰品。他们完全属于布局对象,并被布局对象管理,他们并不从数据源获取他们的contents。当布局对象指定它需要一个decoration view的时候,collection view会自动创建,并为其应用布局对象提供的布局参数。并不需要准备任何自定义视图的内容。

    UICollectionViewCell, Supplementary views和decoration views必须是UICollectionResuableView的子类。每个你布局所使用的视图类都需要在collection view中注册,这样当data source让他从reuse pool中出列时,它才能够创建新的实例。

    自定义布局用到函数介绍

    -(CGSize)collectionViewContentSize

    用来确定collectionView的ContentSize的大小

    layoutAttributesForElementsInRect:

    关键函数, 用来控制cell, Supplementary view, 还有Decoration view的自定义布局属性, 将这些自定义布局属性组成这个数组, 返回. 这些自动布局属性,分别通过下面的三个函数来获取的layoutAttributesForItemAtIndexPath, layoutAttributesForSupplementaryViewOfKind, layoutAttributesForDecorationViewOfKind

    -(UICollectionViewLayoutAttributes )layoutAttributesForItemAtIndexPath:(NSIndexPath )indexPath

    获取cell的自动布局属性

    -layoutAttributesForSupplementaryViewOfKind:withIndexPath:

    获取SupplementaryView的自动布局属性

    -layoutAttributesForDecorationViewOfKind:withIndexPath:,

    获取DecorationView的自动布局属性

    -shouldInvalidateLayoutForBoundsChange:

    当bound变化的时候, 调用此函数. 如果返回yes, 将调用layoutAttributesForElementsInRect等一系列函数, 重新获取各个元素的自动布局.

    例子:

    下面为自己写的一个例子:
    demo效果图

    地址为: http://download.csdn.net/detail/daiyibo123/9144827

  • 相关阅读:
    常用JQuery插件整理
    SSL为Windows server 2008 IIS7进行加密连接
    使用SVN+CruiseControl+ANT实现持续集成之一
    持续化集成工具CruiseControl.NET
    用Asp.net写自己的服务框架
    使用CruiseControl+SVN+ANT实现持续集成之三
    CSLA学习之控制菜单可见性
    Oracle 动态SQL语句(3)之保存存储过程
    Oracle数据库编程之Float与Double
    当函数需要传入较多的参数,可分装成结构体
  • 原文地址:https://www.cnblogs.com/AbeDay/p/5026873.html
Copyright © 2011-2022 走看看