如何根据字符串长度和标签大小调整标签的字体大小

时间:2015-01-10 13:34:32

标签: ios swift

我有一个设置尺寸(300 x 300)的多行标签。

我想根据标签的文字长度和标签的大小,以编程方式调整标签的字体大小。

以下是具有不同长度文本字符串的相同大小标签的2个示例 short text

long text

2 个答案:

答案 0 :(得分:0)

请参阅NSString.boundingRectWithSize:options:attributes:。在这里,您需要逐步递减字体大小,直到字符串适合原始帧。

var paragraph = NSMutableParagraphStyle()
let layout = [NSFontAttributeName:NSFont.systemFontOfSize(0), NSParagraphStyleAttributeName: paragraph, ]
paragraph.lineBreakMode = NSLineBreakMode.ByWordWrapping
var a = NSString(string: "My long text")
let rect = NSMakeSize(30, 20)
let bb = a.boundingRectWithSize(rect, options: NSStringDrawingOptions.UsesLineFragmentOrigin, attributes: layout)

将上述内容放在Playground中并修改rect和字体以查看会发生什么。

答案 1 :(得分:0)

我知道这个问题很老但是......

只需使用AutoShrink选项并在“属性”检查器中设置最小字体大小/比例,它将尽可能大地缩放字体以适合标签的大小。

enter image description here