【问题标题】:Default UICollectionView layout not respecting iPad split screen默认 UICollectionView 布局不尊重 iPad 分屏
【发布时间】:2017-12-27 09:18:55
【问题描述】:

我在分屏时的布局不考虑分屏的宽度。

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

我正在使用

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

是否有处理拆分视图的辅助方法?我在layoutSubview 处理它吗?我本来希望 UICollectionView 为我们处理这个问题。

在 viewWillTransition 中我使用

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

  flowLayout.invalidateLayout()

【问题讨论】:

    标签: ios ipad uicollectionview uisplitviewcontroller


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

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

          override func viewWillLayoutSubviews() {
              super.viewWillLayoutSubviews()
      
              collectionViewLayout.invalidateLayout()
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-11-03
        • 1970-01-01
        • 2016-08-06
        • 1970-01-01
        • 2018-04-02
        • 1970-01-01
        • 1970-01-01
        • 2019-05-06
        相关资源
        最近更新 更多