解决问题Autolayout约束

时间:2016-06-11 18:28:14

标签: ios xcode

我想在Xcode 7中正确理解Autolayout约束的使用,在尝试用一些很棒的教程学习它之后,我仍然遇到很多问题。我在下面显示的屏幕是一个简单的屏幕,用于重定向用户以唱歌形式或登录:

enter image description here

应用Autolayout约束后,下面会出现不需要的结果:

enter image description here

如何看到底部的按钮消失,注册按钮的高度高于预期。

最后我将在约束配置下面显示:

enter image description here

2 个答案:

答案 0 :(得分:0)

您应该只添加允许xCode计算视图的x和y位置以及高度和宽度的约束。 例如:“注册”按钮的主标签顶部空间。现在,相同的注册按钮对已注册的标签具有底部约束,而该标签又与底部具有固定距离以及固定高度。当屏幕尺寸不同时,它不知道如何显示视图。它试图在其视图上维护它无法做到的所有指定约束。首先尝试从主标签中删除固定距离的注册按钮。

在控制台中,加载视图时。调试器应该显示哪些约束是冲突的,哪些约束被XCode删除。

答案 1 :(得分:0)

我在处理AutoLayout时使用以下方法。

作为一般规则,我尝试应用AutoLayout“自上而下”,但是,我需要记住,iPhone 4s比iPhone 6+小很多。

如果后面有滚动视图,TOP-DOWN方法效果很好允许不同大小在顶部对象和现有屏幕底部的对象之间向下滚动。

e.g。从你的屏幕截图...

“主要”标签:

对齐上/左/右+固定高度。然后......

“注册”按钮:

再次 - 对齐上/左/右+修复高度。等...

但是,如果您未在后台使用滚动视图,则根据模拟器屏幕大小,底部的对象将不可见。

<强>解决方案:
而不是将较低的放置对象与TOP对齐,

将它们(较低的物体)对齐到底部并固定它们的高度。

即。双效“自上而下”+“自下而上”

e.g。

“登录”按钮:

对齐底部/右侧+固定高度&amp;宽度。

“已经注册”标签:

对齐底部/右侧+固定高度&amp;宽度。

“注册”按钮:

对齐底部/左/右+固定高度。

总结:

1。如果Scroll View在后台可用,则可以使用将项目与TOP对齐的方法(使用自上而下方法)。

2。否则,需要使用“自上而下”+“向下”的双重方法,在不使用滚动功能的情况下对小+大屏幕产生影响