如何更改属性字符串中的字符的allignment

时间:2018-03-27 09:59:13

标签: ios swift nsmutableattributedstring

这就是我想要实现的目标。

enter image description here

我使用了attributedString,获取了字符 $ 的范围,并按以下方式应用了属性:

let str = "$4"
let r1 = str.range(of: "$")!
let n1 = NSRange(r1, in: str)
let atrStr = NSMutableAttributedString(string: str)
atrStr.addAttributes([NSAttributedStringKey.font : UIFont.systemFont(ofSize: 25)], range: n1)
atrStr.addAttributes([NSAttributedStringKey.foregroundColor : UIColor.lightGray], range: n1)
lbl.attributedText = atrStr

但结果是

enter image description here

如何从底部到顶部更改该特定字符的对齐?

1 个答案:

答案 0 :(得分:2)

您需要使用baselineOffset

NSMutableAttributedString

计算两种字体大小之间的差异

let offset = baseFont.capHeight - smallFont.capHeight

添加名为baselineOffset的新属性

atrStr.addAttributes([NSAttributedStringKey.baselineOffset:offset], range: n1)