UICollectionView header 旋转后视图自动布局混乱

UICollectionView header view auto layout messed up after rotation

我有一个使用 UICollectionViewFlowLayout 的简单 UICollectionView。它还有一个类 UICollectionElementKindSectionHeader 的部分补充视图。当 header 部分在屏幕上可见并且设备旋转时,约束会正确调整 header 的 sub-views。

如果我滚动到 header 部分在屏幕上不可见,请旋转设备并向后滚动以查看 header 视图,sub-views 的约束会不根据设备旋转更新和调整 sub-views 位置。有解决办法吗?

本质上,关于 UICollectionView 的 header 视图(补充视图)尾随 space 约束没有生效,这就是 header 视图(顶部的白色条)的外观喜欢:

我知道在自动布局中不应该显式设置框架,但现在在 -UIViewController viewWillTransitionToSize: works

中编写以下代码
CGRect frame = header.frame;
frame.size.width = size.width;
header.frame = frame;

向任何人寻求更好的解决方案。