我有一个包含两个图像的横向滚动集合视图。用户可以在运行时更改这些图像。这种变化可能会导致集合视图单元格大小的变化,因此集合视图也需要根据单元格的高度调整其高度。
我已经实现了 UICollectionViewDelegateFlowLayout 协议和 sizeForItemAt 函数,它返回给定图像的正确单元格大小。
我还有一个连接到我的收藏视图的高度约束插座,它允许我更改其高度,以匹配所选图像的高度值。
当绘制到屏幕上时,这一切都按照您的预期呈现,但我收到错误“未定义 UICollectionViewFlowLayout 的行为,因为..”,抱怨 sizeForItemAt 返回的高度超过了我的集合视图默认高度(在故事板)。
一旦我改变了它的高度约束,似乎我需要使我的集合视图布局无效,以便在 sizeForItemAt 返回单元格大小之前用这个新值更新集合视图布局。
我尝试在更新集合视图高度约束后立即调用 UICollectionViewLayouts invalidateLayout() ,但这没有帮助。
对我做错了什么有任何想法吗?