gpt4 book ai didi

ios - 在 Xcode 中,如何重命名 Storyboard 中的约束?

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:26:23 24 4
gpt4 key购买 nike

我正在 Xcode 中处理 Storyboard ,并向我正在处理的 View Controller 添加了标签。因为我试图让我所有的应用程序都使用自动布局,所以我的第一 react 是为 Label 添加自动布局约束。所以我在标签所在的 super View 的上边缘和左边缘添加了 2 个约束。我还在标签本身的宽度和高度上添加了约束,我知道我可以在之后修改约束的值以将它们设置为我希望他们成为什么样的人。我的 Storyboard 如下所示:

Label with 4 constraints

然后我意识到我忘记将 Label 的名称更改为更具描述性的名称。由于这是我的主视图的标题标签,我将标签重命名为“标题”,并将顶级 View 重命名为“MainView”。所以现在我的 Storyboard看起来像这样:

Title in MainView with constraints

然后我意识到我的约束仍然引用“Label”和“View”,所以我去重命名它们。我突出显示了宽度的约束,按回车键并得到一个编辑文本字段,并将“标签”一词替换为“标题”,然后再次按回车键。编辑文本字段关闭,但约束名称变回“标签”而不是我键入的“标题”。我又试了一次,同样的结果。我尝试使用高度约束,结果相同。它不会让我更改约束的名称。所以我删除了Width约束,重新做了一个Width约束。现在它有了引用“标题”而不是“标签”的正确名称。但我不想在每次更改约束绑定(bind)到的 UI 元素的名称时都必须删除约束并重新创建它。

在更改约束绑定(bind)到的元素的名称后,是否有任何方法可以重命名约束?

最佳答案

由于最近这在几个应用程序中一直困扰着我,所以我进行了大量搜索,试图找到一种方法来做到这一点。我在文本编辑器中打开 Storyboard 文件来搜索文本,但它不存在。我查看了堆栈溢出,但找不到任何关于重命名 Storyboard约束的信息。然后我偶然发现了一个解决方案。这是我的解决方案。

单击要更改的约束(首先执行宽度,但这并不重要)。在“实用程序”右侧部分的第三个选项“身份检查器”下,“文档”部分中有一个“标签”文本框,其占位符文本为“Xcode 特定标签”。如果在约束上按 Enter,则可以突出显示现有名称并复制它。然后转到身份检查器中的标签文本框并将其粘贴到那里。您可以将“标签”一词更改为“标题”以适合新名称,然后按 Enter 键。您会在 Storyboard 层次结构中看到约束名称发生变化。

但是您还没有完全完成!假设您想将标题文本更改为您的特定标题名称:“我的特定标题”。那么,当您这样做时,标签将不会足够宽以显示所有文本,因此您将宽度限制更新为 140,现在您可以看到整个标题。但是当您希望它显示为“宽度 - (140) - 标题”时,您的约束仍然显示“宽度 - (42) - 标题”,因为您刚刚将宽度更新为 140。

事实证明,当您在 Identity Inspector 的“标签”字段中有任何文本时,它总是会说出该文本是什么。但是在您最初将名称更改为“Width - (42) - Title”以匹配您的标签名称并按回车键或单击另一个字段(任何可以让它接受文本更改的内容)之后,您可以删除Label 文本框的内容和您的约束仍将引用新名称,然后在您更改约束时自动更新。因此,如果您将宽度约束更改为 140,它现在将显示为“宽度 - (140) - 标题”。

所以在你改变了一个元素的名字之后,你也想改变约束的名字,只需将当前的约束名称复制并粘贴到那个标签文本框中,按回车键来获取它来进行更改,然后从标签文本框中删除它。

请注意,您无法更改约束名称的唯一原因是元素的名称已先更改。如果您更改约束中的文本,而它仍然与约束中引用的元素匹配,那么它会让您更改它,并且它会自动将新名称放入身份检查器中的标签文本框中。然后您可以更改元素的名称以匹配您在约束名称中输入的名称。但是因为您在该标签文本框中有文本,所以约束将始终显示该文本。因此,在元素名称与约束名称中的新文本相匹配后,我建议从标签文本框中删除文本,以便约束名称在您更改约束时自动更新。

关于ios - 在 Xcode 中,如何重命名 Storyboard 中的约束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29290887/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com