IB中的Autolayout:添加与第二个视图相关的约束

时间:2014-08-21 19:29:52

标签: ios xcode5 interface-builder autolayout

简短的问题:我想添加两个约束,因此textview始终保持在两个其他标签之下。我想通过Interface Builder来做到这一点。

更长的解释。这是我的屏幕: enter image description here

“Lorem ipsum”文本目前有一个约束,可让它比红色“MAR-14”标签低8 px。我想添加第二个较低优先级的约束,让它比位置标签(“阿姆斯特丹,荷兰”)低8 px。如何在Interface Builder中轻松添加此约束?

2 个答案:

答案 0 :(得分:2)

您添加第二个约束就像添加第一个约束一样。您可以从一个视图控制拖动到另一个视图,然后选择垂直间距约束。

首先,这个新约束将是优先级1000(必需),并将使用画布的当前距离。您可以选择新约束并调整这些属性。

你怎么看待这两个限制在实践中起作用?你想要什么结果?由于对“MAR-14”标签的第一个约束是1000优先级并且指定“相等”(而不是不等式),因此距离确定间隔,周期。优先级较低的约束永远不会重要。

如果你希望Lorem ipsum与两个中的较低者相距一定距离,那么你需要一些约束。有人说Lopem ipsum的顶部大于或等于MAR-14的底部加8.另一种说法Lorem ipsum的顶部大于或等于阿姆斯特丹的底部加上多少。然后第三个说它应该尽可能接近superview的顶部:Lorem ipsum的顶部等于superview的顶部。您将最后一个的优先级设置为低于要求,但可能仍然很高。但是,您希望它低于两者之间视图的垂直压缩阻力优先级。 740可能会很好。

答案 1 :(得分:1)

如果我正确理解您的问题,则需要为TextView设置2 Top constrain

1. Relavent to date label/button
2. with location  label but with low priority

您可以使用位置标签添加相同的方式约束,而不是在属性窗口中双击屏幕右侧的约束,您将看到优先级降低优先级,因为您希望默认1000高优先级(减少到800或您想要的)。

或者在属性窗口右侧的seeting约束后,您将看到约束为您的屏幕截图显示单击工具图标您将获得编辑选项转到优先级字段并减少1000以设置低优先级。

所以它会设置低优先级约束4。

希望这会对你有所帮助