仅更新装饰视图

时间:2015-08-07 14:43:16

标签: ios uikit uicollectionview uicollectionviewlayout

我打算在某个位置将一个视图添加到我的集合视图中。因此我想使用装饰视图。现在这个位置应该每分钟都在变化。如何在iOS 7和iOS 8上使用UICollectionView完成此操作?

似乎可以使用invalidateLayoutWithContext完成此操作,但可以将多个UICollectionViewLayoutInvalidationContext用于布局吗?

阅读documentation

  

要为布局定义自定义失效上下文,请将其子类化   UICollectionViewLayoutInvalidationContext类。在你的子类中,   定义表示布局数据部分的自定义属性   可以独立重新计算。当你需要使你的无效时   在运行时布局,创建失效上下文的实例   子类,根据布局配置自定义属性   信息已更改,并将该对象传递给您的布局   invalidateLayoutWithContext:方法。你的自定义实现   该方法可以使用失效上下文中的信息   只重新计算您更改的布局部分。

     

如果为布局定义自定义失效上下文类   对象,您还应该覆盖invalidationContextClass方法   并返回您的自定义类。集合视图始终创建一个   需要失效时指定的类的实例   上下文。从此方法返回自定义子类可确保这一点   您的布局对象始终具有所需的失效上下文。

似乎只能使用一个失效上下文,因为您不知道何时返回invalidationContextClass中的哪个上下文。

有些时候我需要使整个布局无效(例如方向更改),但我还需要更改装饰视图。

这可能吗?

hereherehere等其他问题不能为我的案例提供完整的解决方案,也不仅仅针对iOS 8。

0 个答案:

没有答案