如何更改“i”圆圈颜色(浅色)

时间:2016-09-06 18:33:50

标签: swift nsattributedstring

无论如何要改变swift中“i”字符的微小颜色?

我想将“i”的圆圈颜色更改为橙​​色,但我找不到如何做到这一点。

例如,我有这个:

click

我想这样做:

click orange circle

我想用NSAttributedString做到这一点,但我找不到任何东西。

“tittle”是“i”字符的圆圈,当我在互联网上搜索如何更改该颜色时,我只得到结果来更改UINavigationBar标题

1 个答案:

答案 0 :(得分:3)

通过使用一些Unicode技巧,你可以(有点)做到这一点。诀窍是combining dot above字符(U+0307)。使其颜色不同并调整其基线以完全重叠i:

上的点
let attributes = [
    NSFontAttributeName: UIFont.systemFontOfSize(50, weight: UIFontWeightHeavy)
]
let dotAttributes = [
    NSFontAttributeName: UIFont.systemFontOfSize(60, weight: UIFontWeightHeavy),
    NSForegroundColorAttributeName: UIColor.redColor(),
    NSBaselineOffsetAttributeName: -15
]

let attributedString = NSMutableAttributedString(string: "cli\u{307}ck", attributes: attributes)
attributedString.setAttributes(dotAttributes, range: NSMakeRange(3, 1))

textLabel.attributedText = attributedString

结果:

enter image description here

缺点是您必须在dotAttributes中试验字体大小和基线偏移量,以使其与常规文本一起使用 - 对它们没有通用规则。