0

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

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

1 回答 1

0

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

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

于 2017-02-27T18:20:57.070 回答