XCODE:标签约束表现得很奇怪

Posted

技术标签:

【中文标题】XCODE:标签约束表现得很奇怪【英文标题】:XCODE: Label constraints acting weird 【发布时间】:2020-10-07 16:11:17 【问题描述】:

我有一个带有以下约束的标签:

它在 iPhone 11 上运行良好,但在 iPhone 8 上却表现得很奇怪。当它是 iPhone 8 或这种尺寸的手机时,我将顶部约束常数从 29 调整到 10,并对旁边的红色星号标签做了同样的事情(那个是 25 到 6),但是当我运行它时在 iPhone 8 等较小的手机上,它看起来像这样:

我尝试了很多方法来解决这个问题,但都无济于事。这是星号的约束,以及下面的视图(包含文本字段的视图。您可以看到的只是文本字段外的黑色部分。)

星号:

查看:

为了以防万一,顶部的导航栏:

您看到的导航栏对名称标签和所需名称标签的约束是分别从这些标签中的每一个设置的。它只出现在导航栏约束中,因为它适用于它。就像我说的,当手机更小时,我会调整这些限制,但它们似乎并没有占据上风。我将名称标签的约束常量调整为 10,将所需的名称标签调整为 6(每个 -19)。非常感谢任何关于为什么视图看起来仍然很奇怪的帮助。

【问题讨论】:

您实际上是在添加UINavigationBar 作为子视图吗?还是您在导航控制器中? 我实际上是作为子视图添加的 【参考方案1】:

几个提示...

一步一步来。 为您的 UI 元素提供对比鲜明的背景颜色,以便于查看框架 在处理布局时使用“预览”窗格

所以,添加你的导航栏并设置它的约束:

添加您的姓名及其星号标签并设置它们的约束条件。注意:将星号标签的顶部限制在名称标签的顶部,以帮助它们保持在一起:

添加您的姓名文本字段并设置其约束:

添加您的估计高度及其星号标签:

估计高度文本字段:

继续检查预览窗格中的布局 - 并运行应用程序以在运行时仔细检查布局 - 一次添加每个元素。

如果布局突然改变,你就知道你做错了什么。

【讨论】:

呃,问题是我的 imageview 视图被限制在安全区域的底部,使其他所有内容都随之下降。不过修好了。谢谢

以上是关于XCODE:标签约束表现得很奇怪的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 6.1 用 git 表现得很奇怪

SF符号在约束下表现得很奇怪[重复]

单元格中的标签位于左上角?

xcode中放错位置的标签/错误的位置约束

UITableViewCell中两个基本相同的UILabel的奇怪约束差异

在 XCode5 中设置约束