为不同的 iPhone 设备自动调整 CollectionView 单元的大小

Posted

技术标签:

【中文标题】为不同的 iPhone 设备自动调整 CollectionView 单元的大小【英文标题】:Autoresize UICollectionViewCells for different IPhones devices 【发布时间】:2014-11-19 20:00:52 【问题描述】:

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

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

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

【问题讨论】:

【参考方案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)];

【讨论】:

以上是关于为不同的 iPhone 设备自动调整 CollectionView 单元的大小的主要内容,如果未能解决你的问题,请参考以下文章

将UIView中UILabel的字体大小调整为不同的设备大小

在 iPad 上自动调整大小

Xcode 5:不同屏幕大小的 iPhone 自动布局视图调整大小问题

调整为 Iphone 6 设计的应用程序大小以在 iphone 5s 中正确缩放

自动调整不同设备字体大小的最佳方法?

如何使用不同屏幕的约束来调整视图的高度和宽度?