快速的多行多色属性文本

时间:2018-09-15 15:49:35

标签: swift nsattributedstring

如何使用属性文本构建类似的内容?我尝试添加换行符(\ n),但没有用,只显示了第一行,然后裁剪了下两行,删除\ n将在一行中显示两部分:

let mutableAttributedString = NSMutableAttributedString()

let regularAttribute = [NSAttributedStringKey.font: UIFont(name: "Avenir-Light", size: 45.0), NSAttributedStringKey.foregroundColor: UIColor.yellow]
let boldAttribute = [NSAttributedStringKey.font: UIFont(name: "Avenir-Light", size: 25.0), NSAttributedStringKey.foregroundColor: UIColor.white]     

let mutableAttributedString2 = NSMutableAttributedString()
let boldAttributedString = NSAttributedString(string: "person", attributes: boldAttribute)
let regularAttributedString = NSAttributedString(string: "\(self.requestCount)", attributes: regularAttribute)
mutableAttributedString2.append(boldAttributedString)
mutableAttributedString2.append(NSAttributedString(string: "\n"))
mutableAttributedString2.append(regularAttributedString)

self.btnStatsPeople.setAttributedTitle(mutableAttributedString2, for: .normal)

1 个答案:

答案 0 :(得分:1)

UILabel默认有一个line

  

此属性控制要使用的最大行数   使标签的文本适合其边界矩形。默认值   该属性为1。要删除任何最大限​​制,并使用尽可能多的   行,请将该属性的值设置为0。

UIButton创建默认的UILabel。因此,使用0行可以解决您的问题:

self.btnStatsPeople.titleLabel?.numberOfLines = 0