【问题标题】:When is the appropriate moment in rotation to change the Layout parameters of a UICollectionView何时是更改 UICollectionView 的布局参数的适当轮换时刻
【发布时间】:2012-09-18 08:45:15
【问题描述】:

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

我有一个UICollectionView,它有一个viewLayout,其中单行单元格的高度与纵向模式下UICollectionView 边界的精确高度

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

什么是操纵 viewLayout 特征的理想方法,尤其是在它与响应 ViewController 中的旋转有关时?

【问题讨论】:

    标签: iphone ios uikit uicollectionview


    【解决方案1】:

    我正在解决类似的问题。

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

    在轮换时,我这样做:

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

    【讨论】:

    • 这对我有用。但是我没有使用setCollectionViewLayout,而是修改了sizeForItemAtIndexPath 中我需要的一个属性。这是reloadData 的结果。
    • 调用 [super willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration] 错过了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-23
    • 2015-03-29
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 2011-04-13
    • 1970-01-01
    相关资源
    最近更新 更多