自动调整 UILabel 大小

发布于 2024-09-09 01:30:21 字数 59 浏览 10 评论 0原文

有没有办法自动调整 UILabel 的大小?给定大小 40 x 40,文本字体大小将根据字符数进行调整。

Is there a way to auto size a UILabel? given size 40 x 40 the text font size would adjust based on the number of characters.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

下雨或天晴 2024-09-16 01:30:21

您可以使用 adjustFontSizeToFitWidth 属性。所以像这样的事情。

UILabel *myLabel = [[UILabel alloc] init];
[myLabel setAdjustsFontSizeToFitWidth:YES];

在 Interface Builder 中,标签属性屏幕上有一个复选框,允许您调整字体大小以适合标签。

You can use the adjustFontSizeToFitWidth property. So something like this.

UILabel *myLabel = [[UILabel alloc] init];
[myLabel setAdjustsFontSizeToFitWidth:YES];

In Interface Builder there is a check box on the Label Attributes screen to allow you to adjust the font size to fit the label as well.

旧情别恋 2024-09-16 01:30:21

嗯,你检查过 UILabel API http ://developer.apple.com/iphone/library/documentation/uikit/reference/UILabel_Class/Reference/UILabel.html 有一个名为 adjustsFontSizeToFitWidth 的简洁属性

uhm, did you check out the UILabel API http://developer.apple.com/iphone/library/documentation/uikit/reference/UILabel_Class/Reference/UILabel.html there's a neat property called adjustsFontSizeToFitWidth

从﹋此江山别 2024-09-16 01:30:21

采用autolayout设计理念,不为UILabel设置高度限制,设置no。行数为 0

自动布局根据标签文本自动处理标签的动态高度。如果标签具有单行文本,则它将仅占用单行空间。如果标签有多于一行,那么它将根据文本大小和显示文本所需的行数调整标签大小。

将动态文本信息的行数设置为零,当文本变化时这将很有用。

以编程方式 (Swift 4)

var label = UILabel()
let stringValue = "iOS\nmultiline\nlabel\nin\nInterface\nbuilder"
label.text = stringValue
label.numberOfLines = 0 // Set 0, if number of lines not specified.
label.lineBreakMode = .byTruncatingTail // or .byWrappingWord
label.minimumScaleFactor = 0.8 . // It is not required but nice to have a minimum scale factor to fit text into label frame

使用 Inetrface Builder

在此处输入图像描述

注意:不需要设置最小字体比例,但最好有一个最小比例因子以使文本适合标签框架。

参考: UILabel - numberOfLines

With autolayout design concept, do not set height constraints for UILabel and set no. of lines as 0.

Autolayout automatically take care of dynamic height of label according to text of label. If label has single line text then it will occupy single line space only. And if label has more than one line then it will resize label according to text size and number of lines required to display text.

Set number of lines zero for dynamic text information, it will be useful when your text are varying.

Programatically (Swift 4)

var label = UILabel()
let stringValue = "iOS\nmultiline\nlabel\nin\nInterface\nbuilder"
label.text = stringValue
label.numberOfLines = 0 // Set 0, if number of lines not specified.
label.lineBreakMode = .byTruncatingTail // or .byWrappingWord
label.minimumScaleFactor = 0.8 . // It is not required but nice to have a minimum scale factor to fit text into label frame

Using Inetrface Builder

enter image description here

Note: It is not required to set Minimum Font Scale, but nice to have a minimum scale factor to fit text into label frame.

Ref: UILabel - numberOfLines

与君绝 2024-09-16 01:30:21

最好使用内在内容和抗压缩优先级来调整标签内容的大小。

Its better to use Intrinsic content and compression resistance priorities to adjust the size of label w.r.t content.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文