何时是旋转的适当时刻以更改UICollectionView的布局参数

M. *_*yan 8 iphone uikit ios uicollectionview

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

我有一个UICollectionView,有一个viewLayout是与作为的确切高度细胞的单排UICollectionView在人像模式范围

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

操纵viewLayout特征的理想方法是什么,特别是因为它涉及到响应旋转ViewController

小智 3

我正在研究类似的问题。

目前,我的 UICollectionViewController 有两个 UICollectionViewFlowLayout 实例变量,每个变量都有适合肖像或风景的适当插图。

在轮换时,我这样做:

-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
                               duration:(NSTimeInterval)duration{

    if (UIDeviceOrientationIsPortrait(toInterfaceOrientation)) {
        [_itemCollection setCollectionViewLayout:_portraitLayout];
        [_itemCollection reloadData];
    } else {
        [_itemCollection setCollectionViewLayout:_landscapeLayout];
        [_itemCollection reloadData];
    }
}
Run Code Online (Sandbox Code Playgroud)

我遇到的唯一问题是它在 setCollectionViewLayout 上随机崩溃。

像上面这样的东西可能对你有用。我不确定这是否是正确的做事方式。我最近才开始使用 UICollectionViews。

  • 这对我有用。但我没有使用“setCollectionViewLayout”,而是只修改“sizeForItemAtIndexPath”中需要的一个属性。这是由于“reloadData”而被调用的。 (4认同)