提问人:Summer 提问时间:7/10/2021 最后编辑:Summer 更新时间:7/10/2021 访问量:145
容器视图的自动布局简单 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 约束。
我完全按照他的做法做了,除了在容器视图上尝试这个。然而,我仍然收到错误,说它需要 X 和 Y 约束。它在按钮上工作得很好。
请帮忙!我做错了什么?如何让它在容器视图上工作?
答:
按钮有一种叫做“内在内容大小”的东西,这意味着它们可以告诉布局系统它们的首选大小是什么,这是根据它们的内容(文本+图像)计算得出的。
您的空容器视图没有固有的内容大小,它无法知道自己有多大,到目前为止,它只知道它必须在 X 和 Y 中居中。
但这还不足以知道它的 X 和 Y 位置(位置是左上角的坐标),因为例如,如果宽度是父项的全宽,则 X 将为 0,但如果宽度为 0,则 X 将是父项宽度的一半。
您需要为视图指定宽度和高度,无论是通过将其大小链接到父级,还是使用常量来执行此操作,这取决于您。
A 知道它会有多大。尝试向按钮添加短/长标题值,您将看到它将相应地调整自身大小。因此,当你向按钮添加&约束时(相对于它的超级视图),Autolayout可以完成其余的数学运算。UIButton
size(width,height)
centerX
centerY
示例 - 按钮需要水平和垂直位于屏幕中央。60x40
A不知道它会有多大。在这种情况下,指定 & 不足以让 Autolayout 完成剩下的工作,它无法猜测 的大小,因此它无法计算将视图放置在屏幕上的位置(不知道大小)。UIView
size(width,height)
centerX
centerY
UIView
你可以在视图中添加&约束,你会看到Autolayout将不再抱怨这一点。width
height
评论
UIButton
评论