【问题标题】:Autoresize UICollectionViewCells for different IPhones devices为不同的 iPhone 设备自动调整 CollectionView 单元的大小
【发布时间】:2025-11-27 03:40:02
【问题描述】:

前段时间我升级了xcode,发现故事板设计有一些变化。所以之前,我只是用 UICollectionViewCell 创建 UICollectionView 控制器。我手动设置了单元格的宽度和高度,以及单元格中的所有子项。因此,当我在不同的 iphone 上运行应用程序时,它总是具有不同的大小,但单元格之间的空间相同。它还会调整其中的单元格和内容的大小。查看 Iphone5S 和 iphone6 的屏幕截图

但是现在,同样的设置结果是不一样的

Sa U 可以看到 iphone5S 和 Iphone6 中单元格之间的空间是不同的。那么如何为单元格之间的空间设置常规大小并为不同的 iphone 设置更大的单元格。我的应用仅适用于具有纵向模式的 Iphone

【问题讨论】:

    标签: ios objective-c iphone uicollectionview uicollectionviewcell


    【解决方案1】:

    你可以这样做:

    CGFloat margin = 10;
    int itemsPerRow = 3;
    
    CGFloat itemSideSize = ([[UIScreen mainScreen] bounds].size.width - itemsPerRow * margin) / 2;
    [(UICollectionViewFlowLayout *)self.collectionView.collectionViewLayout setItemSize:CGSizeMake(itemSideSize, itemSizeSize)];
    [(UICollectionViewFlowLayout *)self.collectionView.collectionViewLayout setMinimumInteritemSpacing:margin];
    [(UICollectionViewFlowLayout *)self.collectionView.collectionViewLayout setMinimumLineSpacing:margin];
    [(UICollectionViewFlowLayout *)self.collectionView.collectionViewLayout setSectionInset:UIEdgeInsetsMake(margin, margin, margin, margin)];
    

    【讨论】:

      最近更新 更多