【发布时间】:2013-07-18 07:54:40
【问题描述】:
我在我的示例应用程序中使用 AutoLayout。我有三个视图,topView、middleView、bottomView。以下是我需要的约束,
顶视图:
- 始终从 x 原点 10 开始。
- 左右边距 10.
- 高度应根据屏幕边界(或超级视图)而有所不同。
中间视图:
- 顶视图和中间视图之间应该有 10 px 的垂直边距。
- 左右边距 10.
- 高度应根据屏幕边界(或超级视图)而有所不同。
底部视图:
- 中间视图和底部视图之间应该有 10 px 的垂直边距。
- 左右边距 10.
- 高度应保持不变,例如 30。
我希望根据设备屏幕尺寸,底部视图 y 原点应该改变,以便调整中间和顶部视图尺寸。 这里的问题是没有办法找出,底视图和界面的 y 原点应该是什么提供了永久约束,例如:
- 中间视图超级视图的顶部空间。
- 顶部空间用于超级视图以用于底部视图。
这是因为没有办法找出视图的高度。 唯一的困难是确定顶视图和中间视图的高度。
【问题讨论】:
-
您遇到的问题是顶部和中间的高度(因此底部的位置)不明确。你希望他们如何工作?这些是什么类型的视图?它们的高度如何工作?高度是否取决于它们的内容?等等......另外,它们是什么类型的视图? UITextViews,UIImageViews?也许他们的工作方式是...... middleView 高度等于 topView 高度除以 2?或者类似的东西。不过,您需要以某种方式定义高度。
-
自动布局的美妙之处在于它是描述性的:你描述你想要什么,系统负责计算。但是,您需要描述您希望系统如何调整顶视图和中间视图的高度。 “高度应该变化”并不是系统可以使用的真正描述。您为什么不尝试向我们描述您的意图,我们可以帮助您向系统描述它? (例如,中间视图应该是顶视图高度的一半。)
-
@Maarten 你说的比我想的要好得多:) 向我们描述你希望它们如何工作,我们将尝试找出哪些约束会产生这种效果。
-
顶视图和中间视图之间没有关系,所以我无法用言语表达。我只是想要那个,我有三个位置固定的视图,最后一个视图高度是固定的。其他两个视图高度将根据设备屏幕尺寸而有所不同。所以无论我在 iphone5 还是 iPhone 4 上运行我的应用程序,它都应该调整视图。它不应该被扭曲。所以请建议我如何指定约束以便它将注意身高。
-
似乎您并不清楚您希望您的应用看起来像什么...您不在乎顶部视图是否为 1 pt 高而中间视图为 499 pts ?
标签: iphone objective-c autolayout