带有 invalidateSupplementaryElements 和 UICollectionViewLayoutInvalidationContext 的 invalidateLayout
invalidateLayout with invalidateSupplementaryElements and UICollectionViewLayoutInvalidationContext
我正在尝试刷新页脚(supplementaryElement)。我正在使用 invalidatelayout
方法。基于 SO 建议 here. Apple documentation here。
我收到以下错误:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'the invalidation context
() sent to
-[UICollectionViewFlowLayout invalidateLayoutWithContext:] is not an instance of type UICollectionViewFlowLayoutInvalidationContext or a
subclass'
实现代码:
let footer_context = UICollectionViewLayoutInvalidationContext()
footer_context.invalidateSupplementaryElements(ofKind: "ActivitiesSelectMembersFooterView", at: [indexPath])
self.collectionView?.collectionViewLayout.invalidateLayout(with: footer_context)
看起来 invalidateLayout
方法需要 UICollectionViewFlowLayoutInvalidationContext
而不是 UICollectionViewLayoutInvalidationContext
。
我正在使用 Xcode 8 和 Swift 3。
我在 Xcode 中的故事板在这里 -
"Next" 是具有自定义 class "ActivitiesSelectMembersFooterView"
的页脚
错误消息准确地描述了问题。在 UICollectionViewFlowLayout 对象上调用 invalidateLayout(with:)
时,需要传递 UICollectionViewFlowLayoutInvalidationContext.
的实例
更改此行:
let footer_context = UICollectionViewLayoutInvalidationContext()
为此:
let footer_context = UICollectionViewFlowLayoutInvalidationContext()
我正在尝试刷新页脚(supplementaryElement)。我正在使用 invalidatelayout
方法。基于 SO 建议 here. Apple documentation here。
我收到以下错误:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'the invalidation context () sent to -[UICollectionViewFlowLayout invalidateLayoutWithContext:] is not an instance of type UICollectionViewFlowLayoutInvalidationContext or a subclass'
实现代码:
let footer_context = UICollectionViewLayoutInvalidationContext()
footer_context.invalidateSupplementaryElements(ofKind: "ActivitiesSelectMembersFooterView", at: [indexPath])
self.collectionView?.collectionViewLayout.invalidateLayout(with: footer_context)
看起来 invalidateLayout
方法需要 UICollectionViewFlowLayoutInvalidationContext
而不是 UICollectionViewLayoutInvalidationContext
。
我正在使用 Xcode 8 和 Swift 3。
我在 Xcode 中的故事板在这里 -
"Next" 是具有自定义 class "ActivitiesSelectMembersFooterView"
的页脚错误消息准确地描述了问题。在 UICollectionViewFlowLayout 对象上调用 invalidateLayout(with:)
时,需要传递 UICollectionViewFlowLayoutInvalidationContext.
更改此行:
let footer_context = UICollectionViewLayoutInvalidationContext()
为此:
let footer_context = UICollectionViewFlowLayoutInvalidationContext()