ios - 如何更改属性字符串中字符的对齐方式

标签 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

如何从下到上更改该特定字符的对齐方式?

最佳答案

您需要使用NSMutableAttributedStringbaselineOffset

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

let offset = baseFont.capHeight - smallFont.capHeight

添加名为baselineOffset的新属性

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

关于ios - 如何更改属性字符串中字符的对齐方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49509851/

相关文章:

objective-c - NSMutableAttributedString 添加不同的对齐方式

ios - 声音播放完毕后,AVAudioPlayer实例会怎样?

ios - 卡在 google admob sdk 7

ios - 采取包括设备框架的 iOS 模拟器屏幕截图?

ios 远程通知未被标记为已读

swift - “ fatal error :在展开可选值时意外发现nil”是什么意思?

ios - 在 UITableView 中分页数据

ios - 应用 NSMutalbeAtributedString 崩溃

ios - 离开范围时 Swift 在 CFRelease 中崩溃

swift - 向动态标签添加字符串属性