【发布时间】:2011-12-21 05:15:59
【问题描述】:
我正在动态填充标题 (UILabel)。有时它有点太长,IOS会挤压字体以适应宽度。有没有办法用相同的字体大小做多行?
【问题讨论】:
标签: objective-c ios uilabel multiline
我正在动态填充标题 (UILabel)。有时它有点太长,IOS会挤压字体以适应宽度。有没有办法用相同的字体大小做多行?
【问题讨论】:
标签: objective-c ios uilabel multiline
是的,您在代码中将 numberOfLines 设置为 0,将 .lineBreakMode 设置为 UILineBreakModeWordWrap,或者如果您的标签在 IB 中定义,则为等效项。
【讨论】:
将adjustsFontSizeToFitWidth 设置为NO,将numberOfLines 设置为0。
此属性控制要使用的最大行数,以便 使标签的文本适合其边界矩形。默认值 此属性为 1。删除任何最大限制,并使用尽可能多的 行,将此属性的值设置为 0。
如果您使用此属性约束您的文本,则任何不 适合最大行数和边界内 使用适当的换行符截断标签的矩形 模式。
当使用 sizeToFit 方法调整接收器的大小时,调整大小 考虑到存储在此属性中的值。例如,如果 此属性设置为 3,sizeToFit 方法调整接收器的大小 这样它就足够显示三行文本了。
您可能还需要指定 lineBreakMode,除非默认的 UILineBreakModeWordWrap 适合您的需要。
【讨论】:
UILineBreakModeWordWrap 自 iOS 6.0 起已弃用,取而代之的是 NSLineBreakByWordWrapping
adjustsFontSizeToFitWidth 设置为NO - 默认为NO
我刚刚使用 LineBreak 模式来截断 Tail 和 setNumberOfLines 为 0 并且它为我工作。 标签现在是多行的。
【讨论】:
使用UILabel属性如下:
textLabel.lineBreakMode = NSLineBreakByWordWrapping;
textLabel.numberOfLines = 0;
【讨论】: