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等一系列函数, 重新获取各个元素的自动布局.

例子:

下面为自己写的一个例子:

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

转载于:https://www.cnblogs.com/AbeDay/p/5026873.html

iOS-UICollectionView自定义布局相关推荐

  1. UICollectionView自定义布局(二)

    这是UICollectionView自定义布局的第二篇,实现类似UltravisualApp的视差效果,同样这篇文章的教程来自Ray家的Swift Expanding Cells in iOS Col ...

  2. UICollectionView 自定义布局教程: Pinterest

    原文: UICollectionView Custom Layout Tutorial: Pinterest 作者:Paride Broggi 译者:kmyhy 更新说明:本教程由 Paride Br ...

  3. UICollectionView 自定义布局!看这篇就够了

    各位同学早上好,新的一周又开始啦!眨眼之间,我们就要与3月挥手告别了,时间过得可真快,不禁感慨道"无可奈何花落去,似曾相识燕归来". 最近,我花了很多的时间整理了 UICollec ...

  4. iOS开发学无止境 - UICollectionView自定义布局之风火轮[译]

    现在有许多极具创造力的网站,几周前我碰巧浏览到一个名为Form Follows Function的网站,上面有各种交互动画.其中最吸引我的是网站上的导航转轮,转轮由各种交互体验海报组成. 原文:UIC ...

  5. Swift - 使用网格(UICollectionView)的自定义布局实现复杂页面

    网格UICollectionView除了使用流布局,还可以使用自定义布局.实现自定义布局需要继承UICollectionViewLayout,同时还要重载下面的三个方法: 1 2 3 4 5 6 7 ...

  6. mac、iOS端支持自定义布局的collection控件的实现与设计

    介绍 collection控件用来实现界面的各种自定义布局,最常用其作为横向.竖向的布局控件.很早之前,系统对于collection的支持并不是很好.所以自己实现了支持自定义布局.自定义cell的co ...

  7. iOS UICollectionView示例教程

    In this tutorial we'll look into iOS UICollectionView component and develop a basic application out ...

  8. iOS之页面布局-踩坑的原由

    iOS之页面布局 原文请点击 在<iOS 7 UI Transition Guide>中有在<iOS 7 UI Transition Guide>的Bar and Bar Bu ...

  9. Xamarin自定义布局系列——PivotPage(多页面切换控件)

    原文:Xamarin自定义布局系列--PivotPage(多页面切换控件) PivotPage ---- 多页面切换控件 PivotPage是一个多页面切换控件,类似安卓中的ViewPager和UWP ...

最新文章

  1. 串行和并行的区别_入门参考:从Go中的协程理解串行和并行
  2. Google BERT应用之《红楼梦》对话人物提取
  3. SpringCloud与dubbo的区别
  4. Libre OJ 「BalticOI 2013」非回文数 数位dp
  5. python如何显示时间_如何让python显示当前时间(东部)
  6. mysql not exists很慢_查询速度优化用not EXISTS 代替 not in
  7. docker 安装镜像失败_docker(mips 64)安装中文字符集失败
  8. 征集 | AAAI 2021线下论文预讲会讲者征集
  9. 入门到精通pl/sql编程(千里之行始于足下)之触发器
  10. 安卓实现百度地图定位
  11. 虚拟机安装与双系统(win10+ubuntu)安装及其他
  12. 两个PDF比较标出差异_找出两份Word文档差异,你加班2小时完成,同事只用1分钟搞定...
  13. 网站怎么做SEO优化操作?
  14. CloneZilla再生龙 | 打造自己的深度学习镜像
  15. [研一上]人脸属性迁移文献梳理(1)
  16. CSDN 写文章报错:标题含有非法字符,请修改的解决方法
  17. Superpoint复现过程——踩坑实录分享
  18. 跟谁学盈利神话已破,烧钱大战没有赢家
  19. outlook默认签名设置_如何将默认签名添加到Outlook会议请求
  20. Android实现语音发送播放功能以及示例代码

热门文章

  1. 厦门GDP超过万亿需要多少年时间?
  2. 商业认知,新的一年已经开始,许多老板都制订了新的目标
  3. 线下社群要如何拉新呢?
  4. Number()函数转换‘单个数值的数组‘为何是数字?【JavaScript】
  5. sql server 入门_SQL Server查询调整入门
  6. odbc驱动程序配置失败_如何使用ODBC驱动程序配置链接服务器
  7. olap 多维分析_如何通过依赖T-SQL从OLAP多维数据集有效地提取数据
  8. centos7 如何使用ReaR进行系统备份(如何使用NFS方法设置ReaR备份)
  9. 数据结构:判断是否为同一棵二叉搜索树
  10. Chemical table CFR500 div2D(并查集)