私は同様の問題に取り組んでいます。
現在、私の UICollectionViewController には UICollectionViewFlowLayout の 2 つのインスタンス変数があり、それぞれにポートレートまたはランドスケープの適切なインセットがあります。
ローテーションでは、私はこれを行います:
-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
duration:(NSTimeInterval)duration{
if (UIDeviceOrientationIsPortrait(toInterfaceOrientation)) {
[_itemCollection setCollectionViewLayout:_portraitLayout];
[_itemCollection reloadData];
} else {
[_itemCollection setCollectionViewLayout:_landscapeLayout];
[_itemCollection reloadData];
}
}
私が抱えている唯一の問題は、setCollectionViewLayout の exc_bad_access でランダムにクラッシュすることです。
上記のようなものがあなたのために働くかもしれません。これが正しい方法であるかどうかはわかりません。UICollectionViews を使い始めたのはつい最近のことです。