swift中的多行多色属性文本
Posted
技术标签:
【中文标题】swift中的多行多色属性文本【英文标题】:Multiline multicolor attributed text in swift 【发布时间】:2018-09-15 15:49:34 【问题描述】:如何使用属性文本构建这样的内容?我尝试添加换行符(\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)
【问题讨论】:
您的问题与UIButton
: ***.com/questions/604632/… 有关吗? ***.com/questions/23845982/…?
【参考方案1】:
UILabel 默认有一个line。
此属性控制要使用的最大行数,以便 使标签的文本适合其边界矩形。默认值 对于这个属性是 1. 删除任何最大限制,并使用尽可能多的 行,根据需要将此属性的值设置为 0。
UIButton 创建默认的 UILabel。因此,使用 0 行可以解决您的问题:
self.btnStatsPeople.titleLabel?.numberOfLines = 0
【讨论】:
以上是关于swift中的多行多色属性文本的主要内容,如果未能解决你的问题,请参考以下文章
swift UILabel中的多行文本(来自http://stackoverflow.com/a/990244/1135737)