使用attributedText时,多行UILabel不会调整文本大小

时间:2015-10-29 01:20:41

标签: swift uilabel

我正在尝试制作一个非常自定义的UILabel。调用viewDidAppear时,将设置UILabel的attributedText属性。 此UILabel需要为2行。我在故事板中将minimumFontSize设置为7并将numberOfLines设置为2.

这是我的代码:

let paragraphStyle = NSMutableParagraphStyle()
        paragraphStyle.lineSpacing = 8.0
        paragraphStyle.alignment = NSTextAlignment.Right

        let name = idea?.valueForKey("name") as! String
        let text = "You submitted your name " + name
        let attrString = NSMutableAttributedString(string: text)
            attrString.addAttribute(NSFontAttributeName, value: UIFont.systemFontOfSize(12.00), range: NSMakeRange(0,attrString.length))
            attrString.addAttribute(NSParagraphStyleAttributeName, value: paragraphStyle, range: NSMakeRange(0, attrString.length))
            attrString.addAttribute(NSForegroundColorAttributeName, value: UIColor(r: 84, g: 105, b: 121, a: 1.0), range: NSMakeRange(0, 3))
            attrString.addAttribute(NSForegroundColorAttributeName, value: UIColor(r: 84, g: 105, b: 121, a: 1.0), range: NSMakeRange(attrString.length - name.characters.count, name.characters.count))

        submittedComment.attributedText = attrString

ISSUE: UILabel的新设置文本未调整大小以适合UILabel。

我错过了什么吗?似乎每个新的主要iOS更新都会改变这种情况。谢谢!

1 个答案:

答案 0 :(得分:0)

<强>解决: 我发现了两个主要错误:

  1. 似乎在NSMutableAttributedString上设置lineSpacing会隐藏一些文本。根据我的测试,看起来UILabel的自动调整功能在调整大小时不会考虑这一点。

  2. 我的UILabel有一个设定的宽度和高度。这里的问题是设置高度,这在我的情况下是不必要的。删除后,attributedText不再被隐藏。

  3. 希望这有帮助!