【发布时间】:2013-07-16 22:51:19
【问题描述】:
我正在尝试使用界面构建器中的约束(自动布局)来布局屏幕设计,并希望避免编码约束,但我猜我会接受任何一种情况的答案。
我在顶层视图中包含两个子视图。我想修复第一个子视图到屏幕顶部的垂直距离(我能够做到这一点 - 垂直空间约束的常见用例)。我希望第二个子视图浮动(垂直)在第一个子视图底部和屏幕底部之间的距离的中心。这个想法是,该设计对 iPhone 3.5" 和 4" 尺寸有所响应。
我无法定义一个或一组约束来实现这一点。
我尝试在第二个子视图与其邻居顶部(第一个子视图)和父视图底部之间的垂直间距约束上设置不等式,并使用这些约束的优先级。
在其他一些关于 SO 的相关帖子中提出的一个想法是使用一个固定到屏幕底部的容器,以及固定到第一个子视图的底部边缘,然后将我的第二个子视图居中容器中的子视图。如果可能,我希望避免使视图层次结构复杂化,但这可能不容易避免。
有什么想法或建议吗?
【问题讨论】:
-
在界面生成器中,您可能不得不使用容器。如果您愿意在代码中摆弄约束,则可以添加比例约束,因此您可以将顶部和底部空间设置为相等,这将实现您所追求的。
-
我只试了 10 分钟,但无法完成。也许只有我一个人,但到目前为止,我只发现了两种使自动布局在 IB 中工作的技术:1)随机提升、固定和删除东西,直到它意外地达到我想要的效果。过了一会儿,转到技巧 2),即放弃并编写代码。
-
您在上一段中提到的建议是最简单的方法。
标签: ios objective-c autolayout