默认UICollectionView布局不尊重iPad分屏

时间:2017-07-21 10:45:54

标签: ios ipad uicollectionview uisplitviewcontroller

分屏时的布局不符合分屏的宽度。

我的自定义视图是尊重它(顶部的黑条),但使用自动布局的任何内容都不符合宽度。

我正在使用

处理轮换
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {

是否有处理拆分视图的辅助方法?我是否在layoutSubview处理它?我原以为UICollectionView会为我们处理这个问题。

在viewWillTransition中我使用

  guard let flowLayout = collectionView.collectionViewLayout as? UICollectionViewFlowLayout else {
            return
        }

  flowLayout.invalidateLayout()

enter image description here

2 个答案:

答案 0 :(得分:0)

我假设"默认"布局你的意思是UICollectionViewFlowLayout。看起来itemSize宽度大于视图的宽度。尝试在collectionView:layout:sizeForItemAtIndexPath:中添加一个检查,以确保宽度小于或等于集合的宽度。

答案 1 :(得分:0)

是的。这个问题在iOS 13 beta 7中仍然存在。

如果实现多窗口并并排拆分两个集合视图。唯一的左窗口将布局正确(旋转几次可以看到)。

enter image description here

在视图控制器中添加它可以修复它:

    override func viewWillLayoutSubviews() {
        super.viewWillLayoutSubviews()

        collectionViewLayout.invalidateLayout()
    }