更改viewWillAppear中的字符串时自动换行错误

时间:2019-03-27 05:53:51

标签: ios swift iphone

我写了一个使用本地化字符串的应用程序。我使用情节提要绘制UIControllers,并将UILabels出口引用到源代码。我更改了 viewWillAppear 中的文本,以将本地化字符串分配给 UILabel.text

我在情节提要中的标签已输入带有正确自动换行的默认字符串。但是,当我在viewWillAppear中更改标签的文本时,字符串会将单词包装在错误的位置。

我已将UILabel设置为0numbersOfLine,LineBreak模式是自动换行,无法创建标签高度...

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)

    // TEXT
    commentLabel.text = "*Please connect both devices to the same Wi-Fi network."
}

在带有默认字符串的情节提要中,它看起来像:
In storyboard

但是在viewWillAppear中更改文本后,它将显示如下:
After changing text in viewWillAppear
“相同”将被分为“ sa”和“ me”!

有人可以帮我吗?

- 更新:

两岸。 “正在加载文本”是“连接到%Device Name%” Imgur

- 更新:

如果我不更改viewWillAppear中的文本,则显示为正常,如下所示。所以我认为约束或布局可能不是问题吗?
Imgur

5 个答案:

答案 0 :(得分:1)

只需确保已设置这些内容,即可使用自动换行使其多行显示

首先请确保您没有为标签或超级视图添加任何固定高度限制

第二,确保将Number of lines设置为0

Work wrap选项中选择Line break选项,如果字体的大小大于其框架,则还允许Autoshrink,以便字体将自动调整为最小尺寸。

enter image description here

  

注意:您还可以添加"\n"以从新行开始

commentLabel.text = "*Please connect both devices to the \n same Wi-Fi network."

答案 1 :(得分:0)

设置前导和尾随约束,并为其添加固定的宽度和高度,考虑到其为硬编码标签。您可以使用以下链接以编程方式对其进行修复。

https://newfivefour.com/swift-ios-add-view-programmatically-autolayout-NSLayoutConstraint.html

答案 2 :(得分:0)

确保您已正确添加约束,尤其是标签的底部约束到视图底部。

答案 3 :(得分:0)

您必须添加constarintsSet Lines to 0中的所有UILabel

Set AutoShrink to minimum font scale

全部完成。

答案 4 :(得分:0)

如果没有约束错误,则结果没有意义。

因此,在设计界面中,iPhone XS与真实的模拟器或iPhone XR中的界面不同。请确保两者相同,以便您所获得的就是您设计的东西。