【发布时间】:2015-10-27 03:56:54
【问题描述】:
总结
我正在当前项目中制作收据屏幕,该屏幕可以纵向和横向查看。我已经完成了纵向约束,它看起来像这样:
。现在,在景观中应该是这样的:
问题
(1) 纵向时,A1-A3 居中对齐,横向时应左对齐(A1-A3 的值是动态的,可以是长文本或短文本)。那么,我可以添加一个约束以编程方式将对齐方式从中心向左放置,还是有其他方法可以做到这一点?
(2) 注意横向视图 A、B、C 的 parentView 变为一个,这可行吗? UIImageView 必须放在 View B 下方
我的尝试
(1) 在使用 IB 的不同大小等级中,只有系统字体系列和大小可以改变,如果 UILabel 居中对齐,它将在所有大小等级中居中
(2) 将 UIImageView 从视图 B 移动到视图 C 时出现错误。似乎如果将一个视图移动到另一个视图,它将在所有尺寸类中永久移动
【问题讨论】:
-
真的很简单,检查你的故事板下面的wAny,hAny,选择仅与纵向或仅横向相关的值,然后为它们创建不同的约束,它甚至可以应用于ipad屏幕
-
您可以使用Size Classes 来设置差异约束。您可能还想查看UIStackView,它在 xcode 7 中更易于布局控件。
-
感谢您的评论。我已经在我的肖像(使用 wAny、hAny)和横向(使用 wAny、hCompact)中使用了它。 UILabel 对齐方式的变化以及 UIImageView 从 View B 到 View C 的移动确实是我的问题。
-
对于 UIImageView,您可以创建 2x 副本,在横向和纵向上,您可以通过
.hidden显示和隐藏彼此,对于 UIlabel,如果它的文本对齐,您还必须为其使用代码, 故事板大小类仅用于放置项目,不更改其属性
标签: ios objective-c autolayout size-classes