iOS 布局列到行
Posted
技术标签:
【中文标题】iOS 布局列到行【英文标题】:iOS layout column to row 【发布时间】:2016-07-20 15:36:25 【问题描述】:我正在开发一个 ipad 应用程序,我需要一些关于一个屏幕布局的帮助:
屏幕必须横向显示 3 列 并且纵向只有 2 列和 1 行。
在自动布局和 UICollectionView 之间,哪种方法最好?
提前致谢^^
编辑 07/25/2016
我非常喜欢 Matt 的提议,我已经开始实施这个解决方案(2 UIStackViews) 但现在我被条件约束困住了:
我的 xib 被参数化以显示在景观模拟指标中(不确定它是否有任何后果,但现在有疑问......)
通过监听 UIDevice 方向更改通知,我已设法根据方向(纵向为垂直或横向为水平)更新根 UIStackView 轴。
我已使用“按比例填充”将此根 UIStackView 分布属性参数化,但视图显示效果不佳。 纵向底部“行”视图的高度太大,横向只能看到子 UIStackView 中的两列(最后一个视图超出屏幕的右边缘
【问题讨论】:
【参考方案1】:屏幕必须横向显示 3 列,纵向仅显示 2 列和 1 行
无论在何处涉及列和行,您都应该考虑使用 UIStackView。您可以通过将视图放入 UIStackView 中轻松地在 Interface Builder 中设计整个界面,甚至可能将包含 UIStackViews 放入 UIStackView 中(例如,将三列放在一行中)。您可以使用条件约束/视图使界面在纵向和横向上有所不同。因此,您描述的整个行为可能根本不需要代码。
【讨论】:
【参考方案2】:在自动布局和 UICollectionView 之间,哪种方法最好?
这确实是两种截然不同的东西。如果您有一堆项目需要一个接一个地布置,请使用带有网格布局的集合视图。您可以使用约束和自动布局在设备旋转时调整集合视图的尺寸,然后让集合视图布局各个项目(单元格)。要使其正常工作,您可能需要做的主要事情是调整单元格的大小,以使它们之间的间距保持一致。
【讨论】:
以上是关于iOS 布局列到行的主要内容,如果未能解决你的问题,请参考以下文章