【问题标题】:How to adjust font size of a label according to length of string and label size如何根据字符串长度和标签大小调整标签的字体大小
【发布时间】:2015-01-10 13:34:31
【问题描述】:

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

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

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

【问题讨论】:

  • 请展示您已经尝试自己解决这个问题。
  • 您可以根据分配给标签的字符串长度更改字体大小。您有以编程方式设置字体大小的方法。

标签: ios swift


【解决方案1】:

请参阅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 和字体,看看会发生什么。

【讨论】:

    【解决方案2】:

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

    只需使用选项 AutoShrink 并在 Attributes Inspector 中设置最小字体大小/比例,它将尽可能大地缩放字体以适应标签的大小。

    【讨论】:

      猜你喜欢
      • 2014-07-15
      • 1970-01-01
      • 1970-01-01
      • 2012-03-19
      • 1970-01-01
      • 2011-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多