【发布时间】:2015-01-10 13:34:31
【问题描述】:
我有一个设置大小 (300 x 300) 的多行标签。
我想根据标签文本的长度和标签的大小以编程方式调整标签的字体大小。
以下是 2 个具有不同长度文本字符串的相同大小标签的示例
【问题讨论】:
-
请展示您已经尝试自己解决这个问题。
-
您可以根据分配给标签的字符串长度更改字体大小。您有以编程方式设置字体大小的方法。
我有一个设置大小 (300 x 300) 的多行标签。
我想根据标签文本的长度和标签的大小以编程方式调整标签的字体大小。
以下是 2 个具有不同长度文本字符串的相同大小标签的示例
【问题讨论】:
请参阅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 和字体,看看会发生什么。
【讨论】: