【问题标题】:UIcollectionview decoration view VS supplementary viewUIcollectionview 装饰视图 VS 补充视图
【发布时间】:2013-10-04 07:48:48
【问题描述】:

我开始使用 ios 6 和 UICollectionView 开发 ios 应用程序。 我注意到补充视图和装饰视图都支持。

有人可以用要点解释两者之间的区别吗?它们听起来非常相似。

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

谢谢

【问题讨论】:

    标签: ios uicollectionview


    【解决方案1】:

    装饰视图正如其名:装饰、镀铬。只有集合视图布局才能决定它们是什么以及放置它们的位置(例如,如果您想每 5 个项目在屏幕上绘制线条)。

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

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

    【讨论】:

    • 我对差异感到困惑,直到我意识到以下几点:对于补充视图,您调用集合视图上的 register 方法之一(或在情节提要中注册)。对于装饰视图,您可以在布局对象本身上使用register 方法之一。
    【解决方案2】:

    从 UITableView 的角度来看:

    补充 = 部分。

    装饰 = tableFooterView tableHeaderView

    【讨论】:

      猜你喜欢
      • 2012-10-03
      • 1970-01-01
      • 2017-07-24
      • 2013-02-20
      • 2015-12-22
      • 1970-01-01
      • 2015-06-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多