gla*_*ast 10 ios ios6 uicollectionview uicollectionviewlayout
我想将标题设置为集合视图,就像UITableViewController的setTableHeader一样.
我找到了在集合视图上设置每个部分的标题的方法,但我找不到如何设置整个标题的标题视图.
Apple对UICollectionViewLayout的引用说:"补充视图显示数据但不同于单元格.与单元格不同,用户无法选择补充视图.而是使用补充视图来实现给定部分或整个部分的页眉和页脚视图等内容集合视图.补充视图是可选的,它们的使用和放置由布局对象定义.",但我不知道如何为整个集合视图实现标题视图.
我试图通过只将节标题视图矩形设置为第一部分来实现这一点,但它与tableHeader的不同.
在表视图中,如果我将内容偏移设置为低于标题,则内容大小会自动扩展,以便隐藏标题,尽管存在少量元素.
但是在集合视图中,只有存在足以进行滚动的元素时,修改内容偏移才能正常工作.
当存在一些元素时,我试图动态扩展内容大小,但似乎它不能正常工作......
我使用自定义布局并在每个滚动事件上重新定位标题来实现此目的。从子类化 UICollectionViewLayout 开始,网上有大量教程,这是一个很好的教程:http ://markpospesel.wordpress.com/2012/10/25/fixing-circlelayout/
然后,技巧是始终返回YES,shouldInvalidateLayoutForBoundsChange:并prepareLayout根据集合视图 xOffset 和 yOffset 重新定位(即更改布局属性的框架)标题。
使用 NSIndexPath 0-0 的补充视图。
layoutAttributesForElementsInRect:将在每一帧上调用,因此如果集合视图中有很多项目,则需要缓存结果,以免影响性能。除该标头外,所有属性均应保持不变。
资料来源:我花了 1 个月的时间研究这个特定主题。
| 归档时间: |
|
| 查看次数: |
2220 次 |
| 最近记录: |