13

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

4

4 回答 4

26

您可以使用该adjustFontSizeToFitWidth物业。所以像这样。

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

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

于 2010-07-14T07:56:29.647 回答
0

嗯,你检查了 UILabel API http://developer.apple.com/iphone/library/documentation/uikit/reference/UILabel_Class/Reference/UILabel.html有一个整洁的属性叫做adjustsFontSizeToFitWidth

于 2010-07-14T07:55:15.043 回答
0

采用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

使用接口生成器

在此处输入图像描述

注意:不需要设置Minimum Font Scale,但最好有一个最小比例因子以将文本放入标签框架。

参考:UILabel - numberOfLines

于 2017-06-21T12:11:41.640 回答
0

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

于 2020-02-06T10:37:39.477 回答