Autolayout视图下降

问题描述:

我已经构建了一个简单的登录屏幕布局。在垂直方向上,顶部有一个徽标,随后是2个电子邮件和密码文本框,然后是提交按钮。Autolayout视图下降

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

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

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

如果有人能解释为什么徽标掉下来,这将是非常有用的。我将包括一个约束的图像。

enter image description here

+0

您没有设置高度约束为containerLayout查看,也为logoLayout高度约束,我觉得这是你的问题的原因 – Hosny

绝对是最低的,你应该:

  • 添加领先尾随底部顶部约束标志图像视图。
  • 设置垂直内容拥抱优先为文本字段为必填项(1000)。
  • 添加底部约束登录按钮。

您肯定会使用太多的中心X和相等的宽度,这会模糊整个布局图。如果你想让它更简单,更可读包括以下修改。

  • 删除中心X,从标志图像芯Y相等的宽度。你会发现它不会破坏任何东西,只是简化了布局。
  • 对于这两个文本字段,删除center X等宽约束。
  • 对于两个文本字段,添加领先尾随约束到上海华
  • 重复过去两年的按钮标志点。

如果您的目标是iOS9或更高版本,则可以使用堆栈视图来布置文本字段和按钮。在下面你可以找到最终结果。当然,你可以为这个布局引入更多的改进,但我不想在这里重新创建它。

final result preview

更新

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

这就是我如何配置它。

content bottom constraint configuration

+0

谢谢你的建议。现在就跟着这个。你能否扩展logoDetailLayout约束,以便我可以看到你在那里使用了什么?谢谢。 – sark9012

+0

据我记得,只有领先,尾随,顶部和底部的超级观点。我会尽快更新答案。 –

+0

具有logoDetailsLayout.bottom = bottom的containerLayout中的约束。我如何申请那一个?努力获得这一点,布局坐在顶部。我认为那是我的问题。 – sark9012