8

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

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

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

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

4

1 回答 1

3

我正在研究类似的问题。

目前,我的 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。

于 2012-09-27T22:34:41.507 回答