ios - UICollectionViewCell 大小适合设备旋转时的所有单元格

标签 ios swift uicollectionview uicollectionviewcell uicollectionviewlayout

我有一个寻呼机全屏 Collection View 。当设备旋转时,collectionview的第一个单元格在横向和纵向模式下适合collectionview。但是当我在 CollectionView 上滚动下一个单元格时,它显示两个单元格。而且它并不适合所有屏幕。尽管我滚动 CollectionView 并旋转,如何使所有单元格大小适合 CollectionView。我尝试了 invalideLayout() 和很多方法。但我无法实现。只是我只想,尽管滚动和旋转,collectionviewcell 在任何情况下都适合整个屏幕。

P.S collectionviewcell 大小应该是整个屏幕大小。

public override func willTransition(to newCollection: UITraitCollection, with coordinator: UIViewControllerTransitionCoordinator) {
    if UIDevice.current.orientation.isLandscape,
        let layout = collectionView.collectionViewLayout as? UICollectionViewFlowLayout {
        let width = view.frame.height
        layout.itemSize = CGSize(width: width, height: UIScreen.main.bounds.width)
        layout.invalidateLayout()
    } else if UIDevice.current.orientation.isPortrait,
        let layout = collectionView.collectionViewLayout as? UICollectionViewFlowLayout {
        let width = view.frame.width
        layout.itemSize = CGSize(width: width , height:  UIScreen.main.bounds.height)
        layout.invalidateLayout()
    }
}

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {

    let width = view.frame.size.width
    return CGSize(width: width , height: UIScreen.main.bounds.height)
}

最佳答案

确保删除单元格之间的间距,如下所示。这将解决您的问题。

enter image description here

关于ios - UICollectionViewCell 大小适合设备旋转时的所有单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55058641/

相关文章:

iOS:使用约束动画 UICollectionView 垂直扩展?

ios - 如何将图像从NSDictionary获取到UICollectionView iOS?

ios - 快速更改方向时如何显示 View ?

ios - Xcode 6 中 UILabel 的属性字符串

android - 用户必须设置安全屏幕锁定 Ionic 2 安全存储

swift - 如何在 Swift 中使用可选方法委托(delegate)给协议(protocol)?

swift - Swift 中的协议(protocol)扩展?

ios - 开启/关闭iCloud时迁移数据

ios - 如何以编程方式在 UITableViewCell 中添加 UIView?

swift - iCloud 核心数据版本迁移