【发布时间】:2023-03-08 21:41:01
【问题描述】:
我最近在我客户的应用程序中启用了自动布局,并正在尝试更新程序以利用 iPhone 6 和 6 Plus 更大的屏幕尺寸。但是,我无法相应地调整视图宽度。
目前,我只关心前两个视图是否正确。这是它的样子:
UILabel UITextField
UILabel(称为名称)具有以下约束:
- 领先空间到 Superview:27
- Superview 的顶部空间:24
UITextField 的约束:
- 前导空格到名称:20
- Superview 的尾随空间:27
- 将 Y 中心与名称对齐
我希望这将使 UITextField 的左边缘靠近名称标签,而右边缘靠近包含 UIScrollView 的右边缘。然而,虽然左边是正确的,但 UITextField 小得可笑,以至于它最多只能占用一两个字符。
如果我向 UITextField Width >= 156 添加一个约束,则该字段对于小型 iPhone 来说足够宽,但对于较大的 iPhone 来说不够延伸。它似乎完全忽略了我放在 UITextField 上的 Trailing Space to Superview 约束。
如何让 UITextField 根据每个设备的大小调整大小?我可以不借助代码来更改宽度约束的常量吗?为什么不遵守 Trailing Space to Superview 约束?
感谢您的帮助。
【问题讨论】:
-
您所说的约束应该有效。你确定这些真的是你所拥有的吗?您不需要任何宽度限制来使文本字段拉伸。
-
您好,您可以添加快照吗?我可以更好地指导你。
-
我添加了模拟器的屏幕截图、故事板场景和 UITextField 的约束。
-
有一个红色箭头表示错误。布局系统无法满足所有约束 - 您要么有冲突的约束,要么缺少一些约束。请先尝试解决布局错误。
-
我更新了屏幕截图,显示所有警告和错误都已更正,但问题仍然存在;这些字段仍然不遵守 iPhone 6 和 6 Plus 上的右边缘约束。任何帮助将不胜感激。
标签: ios uitextfield autolayout