将其他上下文传递给UICollectionViewLayout中的装饰视图

时间:2013-09-04 21:48:15

标签: ios uicollectionview uicollectionviewlayout

我有一个带有自定义布局的UICollectionView来显示类似于甘特图的内容。装饰视图用于在集合视图的顶部添加时间轴。我需要将NSDate传递到装饰视图以用于显示目的,但我不确定如何正确地执行此操作。 Apple文档说它不应该绑定到数据源,它不是真的,但我需要给装饰视图一些额外的上下文。这就是我想知道的:

  • 将其他上下文(参数/参数)传递给装饰视图的适当方法是什么?自定义UICollectionViewLayoutAttributes具有添加的NSDate属性的子类?
  • 这只是滥用装饰视图吗?我应该使用补充观点吗?

1 个答案:

答案 0 :(得分:0)

这听起来像是装饰视图的极佳用法。子类化UICollectionViewLayoutAttributes以添加日期属性的方法对于在布局和装饰视图本身之间传递该上下文是有意义的。最后一步是在自定义布局中添加类似日期属性的内容。当该属性发生变化时,您将要使布局无效(最好只使用-invalidateLayoutWithContext:装饰视图),以便装饰视图有机会应用新属性。

装饰视图的要点是集合视图本身并不知道或不关心它们的存在。我理解这种情况下的困难,因为可见日期范围与集合视图中的数据有关,但我认为装饰视图完全适用于此。