UIcollectionview装饰视图VS补充视图

von*_*dip 11 ios uicollectionview

我正在使用ios 6和UICollectionView开始开发ios应用程序.我注意到有补充观点和装饰观点的支持.

有人可以用子弹点解释两者之间的区别吗?它们听起来很相似.

如果我想在我的集合视图中添加一个加载器(它将出现在每个部分的底部,而该部分正在加载)它应该是一个补充视图还是一个装饰视图?

谢谢

Gui*_*ume 34

装饰视图正如名称所示:装饰,镀铬.只有集合视图布局决定它们是什么以及放置它们的位置(例如,如果要在屏幕上每5个项目绘制一条线条).

补充视图与您的数据更相关.集合视图布局仍然决定放置它们的位置,但它们由集合视图数据源提供,就像常规单元格一样.例如,如果您想为部分添加标题,则可以使用补充视图,因为每个部分的标题都不同,您需要为每个部分调用数据源.

如果您的加载器是通用的,它可能是装饰视图,但装饰视图不是真正可访问的(布局对象说明放置它们的位置,就是它,它们是由集合视图创建的,您永远不会获得对它们的引用),所以如果你想开始/停止它的动画,装饰视图不是最好的选择.如果使用补充视图,则可以在创建时(在数据源collectionView:viewForSupplementaryElementOfKind:atIndexPath:方法中)访问它.但是,只有在屏幕上布局常规数据单元格后,才能查询集合视图.此外,UICollectionViewLayout如果要使用自定义装饰或补充视图,则必须编写自己的类.基础UICollectionViewFlowLayout仅提供页脚和标题补充视图.

  • 我对这种差异感到困惑,直到我意识到以下几点:对于补充视图,您可以在集合视图上调用“注册”方法之一(或在故事板中注册)。对于装饰视图,您可以在布局对象本身上使用一种 `register` 方法。 (2认同)