我的 iOS 应用中的视觉限制让我有些吃力。
我有四个 UIView。一个始终是“标题”或顶 View ,其他三个轮流在其下方可见,如下所示:
+-------------------+
| HeaderView |
+-------------------+
| View2|View3|View4 |
+-------------------+
一次只有 View2、View3 或 View4 中的一个可见,其他的在不使用时隐藏。
现在,使用常规的 NSLayoutConstraints
,我能够让它很好地工作:
- 所有 View 都有前导和尾随边距的约束以匹配主机 super View 。
- HeaderView 有 TopMargin 以匹配宿主 super View 。
- 所有 View 的高度都有限制。 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 的正上方,而不是下方。
关于如何清理它并修复我的垂直布局有什么建议吗?
最佳答案
这样试试,
V:[HeaderView(100)]-[View1(25)]
V:[HeaderView(100)]-[View2(50)]
V:[HeaderView(100)]-[View3(75)]
并确保您正确设置 constraintsWithVisualFormat
方法的 views
参数。它应该是您正在设置约束的 View
的 super View
,或者它应该是与您的约束相关的 View 。
希望这会有所帮助:)
关于ios - 隐藏 View 的视觉约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37608055/