【发布时间】:2013-06-04 16:55:22
【问题描述】:
我见过的所有示例都将补充视图用作页眉或页脚。我需要在流程布局中的每个单元格上方和/或下方添加一个标签。
起初我以为我所要做的就是为种类的补充视图注册一个类,然后实现 collectionViewForSupplementaryElementOfKindAtIndexPath 我会很高兴,但是似乎 FlowLayout 开箱即用只支持页眉和页脚。
Apple 文档似乎暗示更多需要FlowLayout 的子类化工作。
由于我不想重做 Apple 为流布局所做的工作,而且我的单元格的大小预计会有所不同,因此我想扩展 Flow Layout 以支持每个单元格的支持视图。
我想我应该能够通过继承 UICollectionViewFlowLayout 来实现这一点。
但我不确定如何告诉流程布局为每个单元格请求补充视图。 简单地为 supp 视图注册一个类不会强制布局调用 layoutAttributesForSupplementaryViewOfKind。就目前而言,这从未在我的子类中调用过。我想如果我为 supp 视图注册一个类,它应该为我的部分中的每个项目请求 sup 视图......这似乎是一个不正确的假设。
我见过一个很棒的自定义布局示例,其中使用 NSDictionaries 手动管理布局,但我不确定如何将这些知识应用到内置流布局中。
【问题讨论】:
-
您能否更新您的 UITableViewCell 以仅包含页眉和页脚标签?这比管理一堆补充视图要简单得多。
-
@DerrickHathaway 是的,这是最初的想法。我只是想在我的 UICollectionViewCell 中有一个固定在顶部的标签。但是因为单元格大小是动态的,而且文本可能很长,有时标签对于单元格的大小来说太大了,所以我想尝试将标题标签拆分为补充标题标签。
-
...必须有一个相当直接的方法来做到这一点
-
我能看到的唯一方法就像你建议的那样:子类 UICollectionViewFlowLayout 并提供你自己的 SupplementaryViews。如果补充标签的尺寸相当大,您甚至可能无法使用流布局来做到这一点,因为我认为流布局不会尊重您自己的自定义补充视图使用的空间。
标签: ios ios6 flowlayout uicollectionviewlayout uicollectionreusableview