2014-07-01 81 views
10

我想为使用Xcode 5.1.1的iOS 7 iPhone应用程序设计视图。我的目标是iPhone 4和5+视图端口。这是我的观点:iOS 7自动布局Y位置/高度缺失约束

View with problems

这种观点的目的是作为应用程序的主菜单。 ImageView是应用程序的标志,每个按钮都是一个选项。我遇到的麻烦是试图对视图进行正确的限制,以便从iPhone 5到iPhone 4的高度方向都会缩小。无论我尝试哪种组合,我总是最终得到“需要约束:Y位置或身高。”在Missing Constraints下并且在图像和所有按钮的Misplaced Views下的高度不正确。

如果我尝试使用“添加缺少的约束”,Xcode使所有按钮的高度与最后一个按钮的例外相同。最后一个按钮缩小到文本。

我错过了什么让它正常工作?谢谢!!

编辑:根据反馈,我已经做了以下的限制:

图片浏览:已固定至顶部/底部/前/后的SuperView。固定高度。底部空间到黄色按钮

所有按钮:相互高度相等。基于生成的约束,似乎所有其他按钮都会查看黄色按钮的高度。

黄色按钮:顶层空间到图像查看,尾随/前导空格,以上海华,底部空间以红色按钮

红色按钮:顶层空间,以黄色按钮,尾随/前导空格,以上海华,底部空间,以绿色按钮

绿色按钮:顶层空间,以红色按钮,尾随/前导空格,以上海华,底部空间布朗按钮

布朗按钮:顶层空间,以绿色按钮,尾随/前导空格,以上海华,底部空间到橙色按钮

橙色按钮:顶部空间到棕色按钮,拖尾/领先/底部空间到超级视图

如果我这样做,一切看起来不错,在视网膜视图4“。如果我将其切换到3.5英寸视图,一切看起来都不错,并且在模拟器中运行良好,如果将其切换回4英寸视图,则所有按钮(而不是黄色)都会以较小的高度错位放置:

Messed up heights

不知道是什么原因引起的。如果有帮助,我也可以上传我的Xcode项目的副本。

+1

到ImageView的,底部添加上到最后一个按钮,然后选择你想缩小与“等高”添加到他们每个人的看法。 –

+0

我通常会避免添加缺少的约束按钮,它会执行它认为最好的操作,大约一半的时间出错或增加了超出需要的时间。最好的办法是删除所有约束编辑器 - >解决自动布局问题 - >删除所有约束并重新开始。如果/当Xcode抱怨决定是否希望Xcode更新帧或更新约束。阅读错误,它会告诉你它认为错过了什么,然后自己添加它。 – Brandon

回答

8

它看起来像所有按钮的高度相同,它也看起来像imageview也有一个已知的高度。这应该适合你:

1:将所有元素从顶部,左侧,右侧和底部的视图旁边钉住。对于按钮,它将是y轴上方和下方的按钮,以及x轴上的超级视图。
2:指定imageView的高度。
3:命令单击并选择所有的彩色按钮并平均地固定其高度。编辑器 - >针 - >高度平等。

因为autolayout知道imageview开始的位置(从superview顶部开始是0px)并且它知道高度,所以它会知道在哪里放置黄色按钮的顶部。在底部它知道橙色按钮应该固定在底部。 Autolayout唯一需要弄清楚的是每个按钮的高度应该是多少,基于相同的高度限制。

编辑 - >针 - - >再一次一个添加一个领先的(通常是左边的大多数语言),后,顶配的截图

第1步选择顶部的ImageView并选择编辑更详细的说明,和底部。如下所示,或者您可以使用底部的按钮,或者您可以使用底部的针按钮(右侧6)批量添加它们。我建议使用pin按钮,速度更快。点击小点线来选择要添加的约束。

enter image description here enter image description here

第3步是同样脚的高度,从而选择所有颜色的意见和针的高度相等。由于顶部元素(Imageview)被拉到顶部并且具有已知高度,并且底部被固定到屏幕的底部,其余的视图变得像手风琴的褶皱,伸展和收缩以填充其余部分的可用空间。等宽度约束确保它看起来是正确的。如果没有它,他们可能会有多种解决方案,以确定每个视图应该有多大,因此您可能会得到一些小的,一些大的,以及一些可能不可见的。

enter image description here

+0

你能更详细地描述第1步吗?这一步之后我很难过。 – Joshua

+0

更新了图片和更多描述 – Brandon

+0

感谢您的照片和帮助。我已经更新了原始问题和后续问题。 – Joshua