swift - 使用 attributeText 时多行 UILabel 不会调整文本大小

标签 swift uilabel

我正在尝试制作一个非常自定义的 UILabel。当调用 viewDidAppear 时,将设置 UILabel 的 attributedText 属性。 此 UILabel 需要为 2 行。我在 Storyboard中将 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

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

我错过了什么吗?似乎每次新的重大 iOS 更新都会改变这种情况发生的方式。谢谢!

最佳答案

已解决: 我发现有两个主要错误:

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

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

希望这有帮助!

关于swift - 使用 attributeText 时多行 UILabel 不会调整文本大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33404397/

相关文章:

Swift:如何使用 sizeof?

ios7 与 uilabel 中的 nstextattachment 的自定义交互

ios - 使用语音转文本删除搜索栏上的下划线

ios - 是否可以为 UILabel 中的一个字符设置不同的颜色?

ios - 如何在用户填写某些文本字段时更新 UILabel 的文本

ios - 通过创建一个标签来放置多个标签的方法

ios - UILabel 未使用自动布局调整大小

iOS 应用程序被杀死并重新启动 显示我最后的 VC

swift - 如何让 Freddy 在 Swift 中使用 AlamoFire?

swift - 如何在 Swift 中使用正则表达式创建字符串拆分扩展?