gpt4 book ai didi

iphone - 文本更改后 UILabel 未正确换行

转载 作者:行者123 更新时间:2023-11-29 10:58:09 25 4
gpt4 key购买 nike

我正在通过 IB 工作,并且有一个几乎延伸到布局末尾的 UILabel。我将它设置为 Lines=2,因为它应该占用的最大行数是 2。但是,如果它只有 1 行长,我希望它有顶部的垂直对齐。

IB 中的标签设置:

 Lines:2
Line breaks: Word wrap

在代码中,我在 viewDidLoad 方法中设置了 UILabel 的文本。然而,作为功能的一部分,文本必须更改。这是我的代码:

[_main_lbl1 setText:[myUI MAIN_TITLE]];  //Always only 1 line
[_main_lblsub1 setText:[myUI SUB_TITLE]]; //May be 1 or 2 lines
[_main_lblsub1 sizeToFit]; //Causes vertical alignment (I believe)

每当我更改文本并重新运行 sizeToFit 时,文本换行就会变得一团糟。在某些情况下,文本不会像在 IB 中设置的那样几乎到达 UILabel 的末尾,而是会在距离的一半多一点处换行,在某些情况下,它根本不会换行。

IB 中的布局图像:

Label in IB

模拟器中生成的标签图像:

Image of resulting label in simulator

在第一个标签中它似乎工作正常,第二个标签根本没有换行。

在更改 UILabel 文本时,我需要做些什么来保持文本换行吗?还有什么我想念的吗?

注意:更新了问题以包含更多细节和图片。

谢谢

最佳答案

问题在于您使用的是 sizeToFit。拉伸(stretch)标签以适合文本。如果您需要更改尺寸,您可以使用:

CGSize maxSize = CGSizeMake(320, 9999);  // 999 means it can be as tall as you like

CGSize textSize = [label.text sizeWithFont:label.font
constrainedToSize:maxSize];
label.size = textSize;

关于iphone - 文本更改后 UILabel 未正确换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17286951/

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