ios - 横向模式下的 Swift Collection View

标签 ios swift uicollectionview

所以我正在构建一个应用程序,其中我有一个包含连续 2 个单元格的 Collection View 。但是当我旋转屏幕时,我想将其更改为 4。我该怎么做?

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
    let cellWidth =  (view.frame.size.width - 50) / 2
    return CGSize(width: cellWidth, height: cellWidth)
}

override func viewWillTransition(to size: CGSize,
                                 with coordinator: UIViewControllerTransitionCoordinator)
{
    collectionView?.collectionViewLayout.invalidateLayout()
}

最佳答案

viewWillTransition 中添加 super 方法。

super.viewWillTransition(to: size, with: coordinator)

这将允许父 View 将这个方法类传递给它的所有 subview 。

override func viewWillTransition(to size: CGSize,
                             with coordinator: UIViewControllerTransitionCoordinator)
{
      super.viewWillTransition(to: size, with: coordinator)
      collectionView?.collectionViewLayout.invalidateLayout()
}

关于ios - 横向模式下的 Swift Collection View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51907955/

相关文章:

objective-c - 如何添加自定义键盘

iphone - 设置状态栏方向在 iPad 2 的 iOS 6 中不起作用

ios - 如何在 Swift guard 语句中定义弱变量

ios - 重绘时保持 Collection View 单元格重叠

iOS 证书导入 - .p12 与 NSData

ios - 为什么 UIWebView 不在 applicationWillTerminate : in my app delegate? 加载 NSURLRequest

swift - 根据数组中的值替换字符串中的多个单词

ios - 当它不是 rootviewcontroller 并且没有导航 Controller 时,如何从 SKScene 访问以前的 View Controller ?

ios - didSelectItemAtIndexPath 没有在 ios swift 中调用

ios - UICollectionView CellForItemAtIndexPath 没有被调用