tob*_*pwn 7 ios ios6 uicollectionview uicollectionreusableview
提供页脚的最佳方法是什么UICollectionView"粘贴"到给定页面上的屏幕底部?假设UICollectionView全屏并且只有一个部分.
目前我正在提供一个UICollectionReusableView对象collectionView:viewForSupplementaryElementOfKind:atIndexPath:,但是(正如人们所预期的那样)当我的收藏内容超出此屏幕的界限时,页脚会被推离屏幕.
我猜测关键是装饰视图 - 但我找不到任何关于这些工作方式的良好代码(非IB)示例,而且我认为Apple的文档在这个特定主题上不清楚.
更新:装饰视图
在构建和试验装饰视图(使用本教程)之后,我遇到了一些限制 - 即装饰视图对象和UICollectionViewController控制器对象之间实际上没有任何回调(装饰视图由UICollectionViewLayout对象管理,而不是UICollectionViewController宾语).苹果公司认为装饰视图仅限于视觉装饰而非数据驱动(尽管你明显可以解决这个问题).
所以,"正确"的解决方案仍然无法解决,但与此同时,我只是创建了一个静态UIView对象,而我只是从我的UICollectionViewController对象中管理它.它工作正常,但感觉不对.
更新:粘性标题
在过去的几个月里,我在各个项目中处理过类似的问题,并且最近找到了粘性HEADERS的解决方案.我认为这同样适用于页脚,但我还没有测试过.
有关标题的详细信息:
如何在UICollectionView中将Supplementary View float作为Section Headers在UITableView普通样式中进行
实施非常繁重,但在大多数情况下似乎运行良好.
如果很快就这个问题没有进一步的活动,我将作为副本关闭并指向上面的文章.
Der*_*way 16
基本上你需要做的是提供一个自定义UICollectionViewLayout子类,当边界发生变化时(当视图滚动边界变化时)使自身无效.然后提供UICollectionViewLayoutAttributes补充视图,其中更新中心以拥抱集合视图的当前边界(顶部,底部,左侧,右侧,等等).
我在github上添加了一个演示此策略的项目.
更新:从iOS 9开始,UICollectionViewFlowLayout有两个非常方便的属性可以大大简化这项任务.见sectionHeadersPinToVisibleBounds和sectionFootersPinToVisibleBounds.
Tho*_*aux -6
UICollectionViewController(如UITableVC)是一个“快捷方式”,这两个类只是覆盖UIViewController,为您创建collectionView。
您可以轻松地做到这一点并自行添加粘性视图。
| 归档时间: |
|
| 查看次数: |
9330 次 |
| 最近记录: |