有没有自动调整 UILabel 大小的方法?假设 UILabel 的大小为 40 x 40,文本字体大小将根据字符数自动调整。
有没有自动调整 UILabel 大小的方法?假设 UILabel 的大小为 40 x 40,文本字体大小将根据字符数自动调整。
您可以使用adjustFontSizeToFitWidth
属性。像这样:
UILabel *myLabel = [[UILabel alloc] init];
[myLabel setAdjustsFontSizeToFitWidth:YES];
在 Interface Builder 中,标签属性界面上有一个复选框,允许你调整字体大小以适应标签。
使用自动布局设计概念,不要为UILabel设置高度约束,并将行数设置为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
使用 Interface Builder
最小字体缩放比例
,但为了使文本适应标签框架,最好有一个最小比例因子。最好使用内在内容和压缩阻力优先级来调整标签的大小以适应内容。
嗯,你看过UILabel API http://developer.apple.com/iphone/library/documentation/uikit/reference/UILabel_Class/Reference/UILabel.html 吗?有一个很棒的属性叫做adjustsFontSizeToFitWidth