放置 2 个按钮和 1 个文本字段 - 约束是超级视图而不是兄弟姐妹
Posted
技术标签:
【中文标题】放置 2 个按钮和 1 个文本字段 - 约束是超级视图而不是兄弟姐妹【英文标题】:Placing 2 buttons and 1 text field - the constraints are to superview and not siblings 【发布时间】:2015-01-02 15:16:15 【问题描述】:在 Xcode 6 中,我试图将 2 个按钮和 1 个文本字段放在 1 列中,彼此上方:
首先我选择顶部按钮(“扫描...”)并将其 3 个约束设置为 8 个像素:
这很好用。
但是当我对下一个按钮(“连接...”)尝试相同的操作时 - 它的顶部约束与超级视图相关,而不是与其他按钮相关。
我在 Interface Builder 中四处搜索,检查约束属性 - 但找不到修复它的地方。
我可以在哪里切换约束 - 如果它与超级视图或兄弟视图有关?
【问题讨论】:
【参考方案1】:界面构建器将最近邻居标识为所需方向上最近的同级视图,不重叠。因此,可能会阻止您在 2 个按钮之间添加约束的是它们是重叠的,您应该尝试将连接按钮向下移动。
在任意 2 个视图之间添加约束的另一种方法是在左侧面板中的一个视图上按 Ctrl+Clic,然后在要创建的约束的另一个视图上释放指针。
【讨论】:
谢谢+1。当我按住 Ctrl 键单击 2 个按钮时,我当前的问题是负/正:我不确定将什么设置为 First Item、Second Item 和 +Constant(我在那里尝试不同的值并交换它们......)我想知道 Y -axis:它是从顶部开始并在 Interface Builder 中向下增长的吗? 如果您不确定哪个视图是第一个或第二个,您可以从数学角度看一个约束:A = 乘数 * B + 常数(其中 A 是第一个视图的属性, B 是第二个视图的属性)。例如,使用“垂直间距”约束,A 是第一个视图的底部,B 是第二个视图的顶部,因此常数 20 将导致第二个视图比第一个视图低 20px。关于轴,UIKit 中的约定是左上角的原点。【参考方案2】:您可以 CTRL + 从连接按钮拖动到扫描按钮,以专门设置与这两个按钮相关的约束。
【讨论】:
以上是关于放置 2 个按钮和 1 个文本字段 - 约束是超级视图而不是兄弟姐妹的主要内容,如果未能解决你的问题,请参考以下文章