Textfield的约束与UIButton冲突

我还处在学习约束的学习过程中,所以忍耐着我:

在xCode界面生成器中,我的用户界面如下所示:

在这里输入图像说明

顶部的TextField具有以下约束条件:

在这里输入图像说明

而右侧的反转button有以下限制:

在这里输入图像说明

当我在debugging器中运行它时,我得到一个错误configuration的UI:

在这里输入图像说明

究竟发生了什么? 为什么我的反转button增加到一个巨大的大小,并取代了一个奇怪的位置,为什么第一个TextField收缩?

理想情况下,我希望我的debugging器用户界面看起来像我的界面生成器在第一个图像。 我设置这一切通过界面生成器,而不是编程。

因为你的button没有高度和宽度…这可能需要button的图像的固有大小,你可能会得到冲突的输出…

这里是形象和约束…可能是为你工作…

在这里输入图像说明

没有更多的信息,我的第一个猜测是,图像的固有尺寸正在与您在右侧button上设置的约束条件发生冲突。 这很可能会导致约束引擎删除您指定的优先级,因为在运行时出现冲突时,它只是半开始删除约束,直到没有更多的冲突。

你有很多东西指定对超视图。 尽量不要使用超级视图相对约束,除非你真的指定了超级视图的约束,而不是该视图中的其他组件。

一定要在运行时检查日志消息,了解导致冲突被删除的约束冲突,因为这几乎总是造成这种奇怪布局的原因。

顶部TextField应该如下所示:

超级顶层空间,超级俯瞰空间,宽度和高度

button应该有如下:

超级顶层空间,超级空间,宽度和高度

第二个TextField应该如下所示:

顶部空间顶部TextField,领先空间超级查看,等宽和高顶TextField等高

如果你点击 界面生成器中的注意事项

您可以通过进入游戏“视图控制器”的属性检查器来模拟正在处于界面构build器中的设备。

在界面生成器中模拟你正在使用的设备,并且应该确定Ib匹配模拟器(只要在游戏视图控制器标题旁边没有显示黄色错误指示器,错误就会显示“….在运行时可能会有所不同“或类似的东西)。

在这种情况下,在IB的底部使用的尺寸紧凑地紧凑地确定所施加的约束所适用的装置和方向(横向或纵向)。 定期定期是普遍的约束。 检查我以前的post以获取更多的细节