什么时候轮换适当的时刻来更改UICollectionView的布局参数

希望有一个相对较新的UIKit控件的简单问题

我有一个UICollectionView有一个viewLayout与一个单元格的行,这是在纵向模式下的UICollectionView边界的确切高度

因此,当iPad翻转到横向模式时,该行比屏幕本身更高,此时布局(几乎)静静地失败,并且抱怨该行高于边界。

什么是处理viewLayout的特性的理想方法,特别是涉及到在ViewController响应旋转?

我正在处理类似的问题。

目前,我的UICollectionViewController有两个UICollectionViewFlowLayout的实例variables,每个都有相应的用于portait或landscape的insets。

轮stream,我这样做:

 -(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。