10

我正在尝试刷新页脚(supplementaryElement)。我正在使用该invalidatelayout方法。基于这里的建议。苹果文档在这里

我收到以下错误:

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“发送到 -[UICollectionViewFlowLayout invalidateLayoutWithContext:] 的失效上下文 () 不是 UICollectionViewFlowLayoutInvalidationContext 类型的实例或子类”

实现代码:

let footer_context = UICollectionViewLayoutInvalidationContext()
footer_context.invalidateSupplementaryElements(ofKind: "ActivitiesSelectMembersFooterView", at: [indexPath])
self.collectionView?.collectionViewLayout.invalidateLayout(with: footer_context)

看起来invalidateLayoutmethod 是期待UICollectionViewFlowLayoutInvalidationContext而不是UICollectionViewLayoutInvalidationContext.

我正在使用 Xcode 8 和 Swift 3。

我在 Xcode 中的故事板在这里 -

在此处输入图像描述

“Next”是具有自定义类“ActivitiesSelectMembersFooterView”的页脚

4

1 回答 1

8

错误消息准确地描述了问题。在调用invalidateLayout(with:)UICollectionViewFlowLayout 对象时,您需要传递UICollectionViewFlowLayoutInvalidationContext的实例。

更改此行:

let footer_context = UICollectionViewLayoutInvalidationContext()

对此:

let footer_context = UICollectionViewFlowLayoutInvalidationContext()
于 2017-01-14T19:03:15.373 回答