Autolayout视图下降

时间:2017-10-20 09:07:31

标签: ios xcode autolayout

我已经构建了一个简单的登录屏幕布局。在垂直方向,顶部有一个徽标,后面是两个用于发送电子邮件和密码的文本框,然后是一个提交按钮。

有一个外部容器,容器有2个容器视图,一个用于徽标,另一个用于文本框和按钮。

使用自动布局,我可以在Xcode中正确显示布局,输入详细信息容器上方有徽标容器。但是,当我在模拟器或设备上启动应用程序时,徽标似乎会落在文本框的顶部。

Xcode告诉我,我错过了对于y位置或高度的containerLayout约束。我不确定这是否会对这个问题产生任何影响。

如果有人可以解释为什么徽标正在下降,这将非常有用。我将包括一些约束的图像。

enter image description here

1 个答案:

答案 0 :(得分:0)

绝对最低限度,你应该:

  • 主要结尾底部顶部约束添加到徽标图片视图。
  • 将文本字段的垂直内容拥抱优先级设置为必需(1000)。
  • 为登录按钮添加底部约束。

你肯定会使用太多的中心X和相同的宽度,这会遮盖整个布局图。如果您想使其更简单,更易读,请包括以下修改。

  • 从徽标图片中移除中心X 中心Y 等宽。正如您将看到的那样,它不会破坏任何东西,只会简化布局。
  • 对于这两个文本字段,请移除中心X 等宽约束。
  • 对于这两个文本字段,将前导尾随约束添加到superview
  • 重复最后两点登录按钮。

如果您的目标是iOS9或更高版本,则可以使用堆栈视图来布局文本字段和按钮。您可以在下面找到最终结果。当然,您可以对此布局进行更多改进,但我不想在此重新发明它。

final result preview

<强>更新

要为logoDetailsLayout配置底部约束,只需正常添加即可。有时,当视图不对齐时,Xcode会丢失。在这种情况下,您可以双击此约束并在属性检查器中将其修复。

这是我配置它的方式。

content bottom constraint configuration