繁体   English   中英

IB中的自动布局:添加与第二个视图相关的约束

[英]Autolayout in IB: adding constraint related to a second view

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

更长的解释。 这是我的屏幕: 在此处输入图片说明

当前,“ Lorem ipsum”文本具有一个约束条件,该约束条件使其可以保持在红色“ MAR-14”标签下方8像素以下。 我想添加第二个较低优先级的约束,使它也保持在位置标签(“阿姆斯特丹,荷兰”)下方8像素处。 如何在Interface Builder中轻松添加此约束?

您添加第二个约束几乎就像添加第一个约束一样。 您可以从一个视图按住Control拖动到另一个视图,然后选择“垂直间距”约束。

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

但是,您如何期望这两个约束在实践中起作用? 您想要什么结果? 由于对“ MAR-14”标签的第一个约束的优先级为1000,并且指定为“等于”(而不是不等式),因此距离决定了间隔,周期。 较低优先级的约束将不再重要。

如果您希望Lorem ipsum 与两者中的较低者相距一定距离,则将需要一些约束。 一个说法是Lopem ipsum的顶部大于或等于MAR-14的底部加上8。另一种说法是Lorem ipsum的顶部大于或等于Amsterdam的底部加上任何数量。 然后有第三句话说,它应该尽可能靠近超级视图的顶部:Lorem ipsum的顶部等于超级视图的顶部。 您将最后一个优先级设置为低于要求的优先级,但可能仍然很高。 但是,您希望它低于其间视图的垂直压缩阻力优先级。 740可能很好。

如果我正确理解您的问题,而不是您需要为TextView设置2个顶级约束

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

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

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

因此它将设置低优先级约束您4。

希望这个能对您有所帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM