有没有办法在两个不是兄弟姐妹的视图之间定义水平距离约束?我试图在他们的第一个公共超级视图中添加约束,但约束似乎不起作用。
Apple文档说:
约束可能只引用视图本身或其子视图。
但我不确定它们是否意味着直接子视图。
理由:
我有一个观点,我想把不同的孩子安排在一起。其中一些孩子应该表现出活力。不幸的是,在iOS中启用或禁用视图的活力是通过将其放在UIVisualEffectView
中完成的。因此,为了获得充满活力和非充满活力的视图,我在顶层视图中使用了两个容器 - 一个用于充满活力的视图,另一个用于其余视图。但是,我需要通过约束来相对于彼此排列视觉项目。但由于它们位于不同的容器中,因此我需要约束来处理非兄弟视图。
答案 0 :(得分:1)
您可以通过按下控制按钮拖动约束线来实现此约束。这是一个例子。
1)不同容器中的两个视图,红色和蓝色,其中红色具有X位置约束,但蓝色不具有它:
{ {3}}
2)按Control
按钮,将线条从蓝色拖动到红色,您将看到约束菜单,在这种情况下您应该选择Horizontal Spacing
:
3)从此菜单中选择Horizontal Spacing
,您就完成了:
答案 1 :(得分:1)
除非你想支持仍然在iOS 7上的~3%的用户,否则不要手动为任何视图添加约束:
为iOS 8.0或更高版本开发时,请设置约束的活动状态 属性为真。这会自动将约束添加到 正确的观点。
创建一个引用两个视图的约束,确保它们位于相同的视图层次结构中,然后激活它。