容器视图的自动布局简单 X Y 约束不起作用
Auto layout Simple X Y constraints for Container View not working
我正在学习尝试添加 X 和 Y 约束的简单教程,但遇到了问题。
教程如下:
https://www.youtube.com/watch?v=emojd8GFB0o
他在 11:07 周围添加了一个 X 约束和一个 Y 约束。
除了我在 Container View 上尝试这个之外,我完全按照他的方式做了。但是我仍然收到错误消息,说它需要 X 和 Y 约束。它在按钮上工作得很好。
请帮忙!我究竟做错了什么?我如何让它在容器视图上工作?
按钮有一种叫做“固有内容大小”的东西,这意味着它们可以告诉布局系统它们的首选大小是多少,这是根据它们的内容(文本 + 图像)计算得出的。
您的空容器视图没有固有的内容大小,它不知道自己有多大,到目前为止它只知道它必须以 X 和 Y 为中心。
但这还不足以知道它的X和Y位置(该位置是左上角的坐标),因为如果例如宽度是父级的全宽,则X将为0 , 但如果宽度为 0,则 X 将是父宽度的一半。
您需要为视图指定宽度和高度,是通过将其大小链接到父视图还是通过使用常量来实现,这取决于您。
A UIButton
知道它在 size(width,height)
中有多大。尝试向按钮添加 short/long 标题值,您将看到它会相应地调整自身大小。因此,当您向按钮添加 centerX
& centerY
约束(相对于它的超级视图)时,Autolayout 可以完成剩下的数学运算。
示例 - 按钮是 60x40
,它需要在水平和垂直方向上都位于屏幕中央。
一个UIView
不知道在size(width,height)
中会有多大。在这种情况下,指定 centerX
& centerY
不足以让 Autolayout 完成剩下的工作,它无法猜测 UIView
的大小,因此无法计算将你的代码放在哪里在屏幕上查看(不知道大小)。
您可以向您的视图添加 width
和 height
约束,您将看到 Autolayout 将停止对此抱怨。
我正在学习尝试添加 X 和 Y 约束的简单教程,但遇到了问题。
教程如下: https://www.youtube.com/watch?v=emojd8GFB0o
他在 11:07 周围添加了一个 X 约束和一个 Y 约束。
除了我在 Container View 上尝试这个之外,我完全按照他的方式做了。但是我仍然收到错误消息,说它需要 X 和 Y 约束。它在按钮上工作得很好。
请帮忙!我究竟做错了什么?我如何让它在容器视图上工作?
按钮有一种叫做“固有内容大小”的东西,这意味着它们可以告诉布局系统它们的首选大小是多少,这是根据它们的内容(文本 + 图像)计算得出的。
您的空容器视图没有固有的内容大小,它不知道自己有多大,到目前为止它只知道它必须以 X 和 Y 为中心。
但这还不足以知道它的X和Y位置(该位置是左上角的坐标),因为如果例如宽度是父级的全宽,则X将为0 , 但如果宽度为 0,则 X 将是父宽度的一半。
您需要为视图指定宽度和高度,是通过将其大小链接到父视图还是通过使用常量来实现,这取决于您。
A UIButton
知道它在 size(width,height)
中有多大。尝试向按钮添加 short/long 标题值,您将看到它会相应地调整自身大小。因此,当您向按钮添加 centerX
& centerY
约束(相对于它的超级视图)时,Autolayout 可以完成剩下的数学运算。
示例 - 按钮是 60x40
,它需要在水平和垂直方向上都位于屏幕中央。
一个UIView
不知道在size(width,height)
中会有多大。在这种情况下,指定 centerX
& centerY
不足以让 Autolayout 完成剩下的工作,它无法猜测 UIView
的大小,因此无法计算将你的代码放在哪里在屏幕上查看(不知道大小)。
您可以向您的视图添加 width
和 height
约束,您将看到 Autolayout 将停止对此抱怨。