【发布时间】:2016-06-03 15:52:30
【问题描述】:
我在 iOS 应用中遇到了一些视觉限制。
我有四个 UIView。一个始终是“标题”或顶视图,其他三个轮流在其下方可见,如下所示:
+-------------------+
| HeaderView |
+-------------------+
| View2|View3|View4 |
+-------------------+
View2、View3 或 View4 一次只有一个可见,其他在不使用时隐藏。
现在,使用常规的NSLayoutConstraints,我可以让它工作得非常好:
- 所有视图都有前导和尾随边距限制,以匹配宿主超级视图。
- HeaderView 具有 TopMargin 以匹配主机超级视图。
- 所有视图的高度都有限制。 HeaderView 为 100,View2、View3、View4 分别为 25、50、75。
- View2、View3 和 View4 都具有将其 Top 设置为 HeaderView Bottom 的约束。
- (我不关心 View2、View3 或 View4 的任何底部边界 - 它们的高度是固定的,它们下方的空白空间在其他地方进行管理。)
所以,我正在尝试将其转换为视觉约束。到目前为止,这是我对水平约束的了解,非常棒:
@"H:|-0-[HeaderView]-0-|"
@"H:|-0-[View2]-0-|"
@"H:|-0-[View3]-0-|"
@"H:|-0-[View4]-0-|"
现在,垂直限制是我遇到麻烦的地方:
我尝试了以下方法:
@"V:|-0-[HeaderView(100)]-0-[View2(25)]-0-[View3(50)]-0-[View4(75)]"
我也尝试过拆分:
@"V:|-0-[HeaderView(100)-0-[View2(25)]"
@"V:|-0-[HeaderView(100)-0-[View2(50)]"
@"V:|-0-[HeaderView(100)-0-[View2(75)]"
现在,问题是垂直布局永远不会正确 - 几乎总是,View2、View3 或 View4 将位于 HeaderView 的顶部,而不是它的下方。
关于如何清理和修复我的垂直布局的任何建议?
【问题讨论】:
标签: ios cocoa-touch constraints