iOS布局列到行

时间:2016-07-20 15:36:25

标签: ios autolayout uicollectionview uistackview

我正在使用ipad应用程序,我需要一些屏幕布局的帮助:

屏幕必须以横向显示3列 并且在纵向上只有2列和1行。

在auto-layout和UICollectionView之间,哪种方法最好?怎么做?

提前致谢^^

编辑2016年7月25日

我非常喜欢马特的提议,我已经开始实施这个解决方案(2个UIStackViews) 但现在我坚持使用条件约束:

我的xib被参数化以在景观模拟指标中显示(不确定它有任何后果,但现在有疑问......)

我已经设法通过收听UIDevice方向更改通知,根据方向(纵向垂直或横向为横向)更新根UIStackView轴。

我已使用“按比例填充”参数化此根UIStackView分布属性,但视图显示效果不佳。 在纵向中,底部“行”视图的高度太大,在横向上只能看到子UIStackView中的两列(最后一个视图位于屏幕的右边缘

2 个答案:

答案 0 :(得分:1)

  

屏幕必须以横向显示3列,纵向仅显示2列和1行

无论涉及哪些列和行,都应考虑使用UIStackView。您可以通过将视图放在UIStackView中来轻松地在Interface Builder中设计整个界面,甚至可能将包含的UIStackView放在UIStackView中(例如,将三列放入一行)。您可以使用条件约束/视图使界面在纵向与横向上不同。因此,您描述的整个行为可能根本不需要代码。

答案 1 :(得分:0)

  

在auto-layout和UICollectionView之间,哪种方法最好?怎么做?

那些真的是两件非常不同的东西。如果您有一堆需要依次布局的项目,请使用带有网格布局的集合视图。您可以使用约束和自动布局在设备旋转时调整集合视图的尺寸,然后让集合视图布局各个项目(单元格)。您可能需要做的主要工作就是调整单元格的大小,使它们之间的间距保持一致。