我正在尝试刷新页脚(supplementElement)。我正在使用-invalidatelayout方法。基于SO建议here。 Apple文档here。我收到以下错误
***由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'发送到的无效的上下文() - [UICollectionViewFlowLayout invalidateLayoutWithContext:]不是UICollectionViewFlowLayoutInvalidationContext类型的实例或子类'
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中的故事板就在这里 -
“下一步”是具有自定义类“ActivitiesSelectMembersFooterView”的页脚
答案 0 :(得分:6)
错误消息准确描述了该问题。在UICollectionViewFlowLayout对象上调用invalidateLayout(with:)
时,需要传递UICollectionViewFlowLayoutInvalidationContext的实例。
更改此行:
let footer_context = UICollectionViewLayoutInvalidationContext()
对此:
let footer_context = UICollectionViewFlowLayoutInvalidationContext()