我正在使用ipad应用程序,我需要一些屏幕布局的帮助:
屏幕必须以横向显示3列 并且在纵向上只有2列和1行。
在auto-layout和UICollectionView之间,哪种方法最好?怎么做?
提前致谢^^
编辑2016年7月25日
我非常喜欢马特的提议,我已经开始实施这个解决方案(2个UIStackViews) 但现在我坚持使用条件约束:
我的xib被参数化以在景观模拟指标中显示(不确定它有任何后果,但现在有疑问......)
我已经设法通过收听UIDevice方向更改通知,根据方向(纵向垂直或横向为横向)更新根UIStackView轴。
我已使用“按比例填充”参数化此根UIStackView分布属性,但视图显示效果不佳。 在纵向中,底部“行”视图的高度太大,在横向上只能看到子UIStackView中的两列(最后一个视图位于屏幕的右边缘
答案 0 :(得分:1)
屏幕必须以横向显示3列,纵向仅显示2列和1行
无论涉及哪些列和行,都应考虑使用UIStackView。您可以通过将视图放在UIStackView中来轻松地在Interface Builder中设计整个界面,甚至可能将包含的UIStackView放在UIStackView中(例如,将三列放入一行)。您可以使用条件约束/视图使界面在纵向与横向上不同。因此,您描述的整个行为可能根本不需要代码。
答案 1 :(得分:0)
在auto-layout和UICollectionView之间,哪种方法最好?怎么做?
那些真的是两件非常不同的东西。如果您有一堆需要依次布局的项目,请使用带有网格布局的集合视图。您可以使用约束和自动布局在设备旋转时调整集合视图的尺寸,然后让集合视图布局各个项目(单元格)。您可能需要做的主要工作就是调整单元格的大小,使它们之间的间距保持一致。