如何在旋转前获取 UICollectionView 单元格的大小

Posted

技术标签:

【中文标题】如何在旋转前获取 UICollectionView 单元格的大小【英文标题】:How to get the size of a UICollectionView cell before rotation 【发布时间】:2015-07-08 00:34:47 【问题描述】:

我有一个 UICollectionView,其宽度是其父级的百分比。当它旋转时,我需要知道它的大小,因此我可以使布局无效并将集合视图单元格重新绘制为新的全宽。我正在使用 viewWillTransitionToSize:withTransitionCoordinator: 方法,但它返回的大小是整个屏幕。在方向更改生效之前,有什么简单的方法可以获取 UICollectionView 的新框架?

【问题讨论】:

【参考方案1】:
    override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) 
          super.viewWillTransitionToSize(size, withTransitionCoordinator: coordinator) 

          print(self.collectionView.frame) // old frame
          coordinator.animateAlongsideTransition( (UIViewControllerTransitionCoordinatorContext) -> Void in

           )  (UIViewControllerTransitionCoordinatorContext) -> Void in
              print(self.collectionView.frame) // new frame
           


    

【讨论】:

以上是关于如何在旋转前获取 UICollectionView 单元格的大小的主要内容,如果未能解决你的问题,请参考以下文章

屏幕旋转后如何在 UICollectionView 中跟踪单元格的移动

旋转后如何调整 UICollectionView contentOffset?

设备旋转时如何自动调整 UICollectionView 的大小?

Swift:如何在设备旋转后刷新UICollectionView布局

如何旋转类似于照片应用程序的 UICollectionView 并保持当前视图居中?

如何使用自动布局以编程方式快速设置旋转时 UICollectionView 的宽度