我有 UICollectionView 与情节提要中的单元格。每个单元格的大小设置为 145x145。
它们在 iPhone 4 - 5s 上看起来不错,但在 iPhone 6 和 6+ 上尺寸并没有按比例增加。我如何动态地设置而不是为每个设备手动设置不同的单元格大小?
请参阅此处的示例:iPhone 5S:http://prntscr.com/55vy7q http://prntscr.com/55vy7q, iPhone 6:http://prntscr.com/55vyy2 http://prntscr.com/55vyy2
如果您希望单元格调整其宽度,则需要计算流布局itemSize
基于视图宽度。
-
如果所有单元格大小相同,您可以设置流布局的itemSize
财产:
#define kCellsPerRow 2
UICollectionViewFlowLayout *flowLayout = (UICollectionViewFlowLayout*)self.collectionView.collectionViewLayout;
CGFloat availableWidthForCells = CGRectGetWidth(self.collectionView.frame) - flowLayout.sectionInset.left - flowLayout.sectionInset.right - flowLayout.minimumInteritemSpacing * (kCellsPerRow - 1);
CGFloat cellWidth = availableWidthForCells / kCellsPerRow;
flowLayout.itemSize = CGSizeMake(cellWidth, flowLayout.itemSize.height);
如果您想动态改变每行的单元格数量,我已经提供了这些详细信息在单独的答案中 https://stackoverflow.com/a/36315107/4151918.
如果您需要计算每个单元格的大小,你可以在collectionView:layout:sizeForItemAtIndexPath:
代表。
当设备方向改变时重新计算 itemSize 并更新布局:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)