UICollectionView 和每列的单元格数
Posted
技术标签:
【中文标题】UICollectionView 和每列的单元格数【英文标题】:UICollectionView and Number of Cells on Each Column 【发布时间】:2012-12-06 11:11:45 【问题描述】:如下面的屏幕截图所示,我有一个带有多个单元格的 UICollectionView。目前,设备的方向是纵向。
由于我有以下代码,所以每列有多达 19 个单元格。
- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section;
return UIEdgeInsetsMake(0, 100, 0, 100);
如果我将方向更改为横向,每列上的单元格数量将会改变。无论设备的方向如何,是否可以拥有相同数量的列?
感谢您的帮助。
【问题讨论】:
在更改方向时,父大小会减小,导致列数减少以自动适应屏幕。可能您可以在文档中找到任何方法来增加行并保持单元格的数量不变。 【参考方案1】:您可以采取多种方法。您可以在 IB 中为您的集合视图添加一个宽度约束(并确保您在侧面只有一个约束或在宽度方向上只有一个居中约束)。
另一种方法是根据方向更改插图。您将覆盖 didRotateFromInterfaceOrientation: 并检查 interfaceOrientation 属性以确定您所处的方向,然后适当地设置插图。
【讨论】:
谢谢。我已经尝试过后者。它似乎不起作用。 @TBlue,它应该 -- 你应该发布你尝试过的代码,并指出你得到了什么结果。 我现在明白为什么设置插图不能正常工作。重置每个方向的插图后,您必须重新加载单元格。以上是关于UICollectionView 和每列的单元格数的主要内容,如果未能解决你的问题,请参考以下文章
UICollectionView 中的 UICollectionViewFlowLayout - 每个部分中的动态单元格数
用 1 和 -1 填充 n x n 零矩阵的方法,使得每行和每列只能有一个 1 和 -1,并且每行和每列的总和为 0