ssc*_*ert 12 objective-c ios autolayout
我正在尝试使用界面构建器中的约束(自动布局)来布局屏幕设计,并希望避免编码约束,但我想接受任何一种情况的答案.
我在顶级视图中包含两个子视图.我想将第一个子视图的垂直距离固定到屏幕的顶部(我能够实现这一点 - 垂直空间约束的常见用例).我希望第二个子视图在第一个子视图的底部和屏幕底部之间的距离的中心浮动(垂直).这个想法是设计对iPhone 3.5"vs 4"尺寸有所回应.
我无法定义可实现此目的的约束或约束集.
我已经尝试在第二个子视图和它的邻居(第一个子视图)和superview的底部之间的垂直间距约束上设置不等式,并使用这些约束的优先级.
在SO上的一些其他相关帖子中提出的想法是使用固定到屏幕底部的容器,以及固定到第一个子视图的底部边缘,然后将我的第二个子视图放在第一个子视图的中心.容器.我希望尽可能避免使视图层次结构复杂化,但也许这不容易避免.
有什么想法或建议吗?
rob*_*off 17
这个答案描述了如何在Xcode 6.0中执行此操作(可能在Xcode 5.0和5.1中有效).
如果要使用自动布局执行此操作,则必须添加至少一个间隔视图.它不必是垂直居中视图(或任何其他视图)的超视图,因此它对视图层次结构有很小的影响.
我建议不要尝试在Xcode 4.6.3中的Interface Builder中设置约束.这太痛苦了.但如果你真的必须,这是可行的.
UIView从顶部拥抱视图的底部边缘到superview的底部边缘创建一个垫片(一个普通的旧).将其设置为隐藏.将它限制为顶视图和根视图的左下边缘,并固定其宽度.我的垫片宽度是10:
添加中间视图(此处为按钮).给它一个"容器中的水平中心"约束.然后选择中间视图和间隔视图,并为它们提供"垂直中心"约束:
请注意,如果在IB显示正确的准则时放下中间视图,它将为您设置这些约束.
您可以通过为后代(但不是兄弟姐妹和祖先)调整大小并调整IB中的根视图大小来进行测试.中间视图将保持在顶部拥抱视图和超视图底部之间的中心:
| 归档时间: |
|
| 查看次数: |
9238 次 |
| 最近记录: |