我开始使用 ios 6 和 UICollectionView 开发 ios 应用程序。我注意到补充视图和装饰视图都支持。
有人可以用要点解释两者之间的区别吗?它们听起来非常相似。
如果我想在我的集合视图中添加一个加载器(在加载该部分时将出现在每个部分的底部),它应该是补充视图还是装饰视图?
谢谢
我开始使用 ios 6 和 UICollectionView 开发 ios 应用程序。我注意到补充视图和装饰视图都支持。
有人可以用要点解释两者之间的区别吗?它们听起来非常相似。
如果我想在我的集合视图中添加一个加载器(在加载该部分时将出现在每个部分的底部),它应该是补充视图还是装饰视图?
谢谢
装饰视图正如其名:装饰、镀铬。只有集合视图布局决定它们是什么以及放置它们的位置(例如,如果您想在屏幕上每 5 个项目绘制线条)。
补充视图与您的数据更相关。集合视图布局仍然决定将它们放在哪里,但它们由集合视图数据源提供,就像常规单元格一样。例如,如果您想为部分添加标题,您将使用补充视图,因为每个部分的标题都不同,您需要为每个部分调用数据源。
如果你的加载器是通用的,它可能是一个装饰视图,但是装饰视图并不是真正可访问的(布局对象说明了它们的放置位置,就是这样,它们是由集合视图创建的,你永远不会得到对它们的引用),所以如果你想开始/停止动画,装饰视图不是最好的选择。如果您使用补充视图,那么您可以在创建时访问它(在您的数据源collectionView:viewForSupplementaryElementOfKind:atIndexPath:
方法中)。但是,您只能在常规数据单元格布置在屏幕上后查询集合视图。UICollectionViewLayout
此外,如果您想使用自定义装饰或补充视图,则必须编写自己的类。基础UICollectionViewFlowLayout
仅提供页脚和页眉补充视图。
从 UITableView 的角度来看:
补充 = 部分。
装饰 = tableFooterView tableHeaderView