我有一个设置尺寸(300 x 300)的多行标签。
我想根据标签的文字长度和标签的大小,以编程方式调整标签的字体大小。
以下是具有不同长度文本字符串的相同大小标签的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)