Uiview UICollectionViewCell大小和旋转

Uiview UICollectionViewCell大小和旋转,uiview,uicollectionview,autolayout,uicollectionviewcell,Uiview,Uicollectionview,Autolayout,Uicollectionviewcell,在我的UICollectionView中,我有一个单元格,它应该占据设备的整个宽度。以下是我如何设置项目的大小: - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { return CGSizeMake(self.vie

在我的
UICollectionView
中,我有一个单元格,它应该占据设备的整个宽度。以下是我如何设置项目的大小:

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
    return CGSizeMake(self.view.bounds.size.width, 120);
}
我发现在旋转时,单元格的宽度不会改变。我可以使用
didRotateFromInterfaceOrientation:
中的
[collectionView.collectionViewLayout invalidateLayout]
解决此问题,但这并不令人满意。如果用户在我的应用程序的另一个屏幕中旋转会怎么样?我需要将其添加到
视图将出现
。如果在应用程序处于后台时发生旋转,该怎么办?现在,我需要为
uiapplicationidbecomeactivityfication
通知添加它

最让我困惑的是,在同一个集合视图中,我的自定义头不需要这样做。以下补充视图在方向更改时正确地重新调整了尺寸:

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section
{
    return CGSizeMake(self.view.bounds.size.width, 40);
}

我哪里做错了?我应该怎么做才能让单元格自动重新调整大小以填充集合视图的宽度?

我知道有点晚了,但是你能通过对流布局进行子类化并添加新的元素来解决这个问题吗

 - (BOOL)shouldInvalidateLayoutForBoundsChange:(CGRect)newBounds {
  return TRUE;
}