为不同的IPhones设备自动调整UICollectionViewCells

时间:2014-11-19 20:00:52

标签: ios objective-c iphone uicollectionview uicollectionviewcell

前段时间我升级了xcode并发现了故事板设计的一些变化。所以之前,我只是使用UICollectionViewCell创建UICollectionView控制器。我在其上设置了单元格的宽度和高度以及单元格中的所有子项目。所以,当我在不同的iphone上运行app时,它总是有不同的大小,但是在单元格之间有相同的空间。它还调整了细胞和内容的大小。查看Iphone5S和iphone6 enter image description here

的屏幕截图

enter image description here

但是现在,使用相同的设置,结果不一样 enter image description here enter image description here

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

1 个答案:

答案 0 :(得分:2)

您可以这样做:

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)];