2016-09-06 7 views
0

とにかく、素早く "i"文字の太さの色を変えるのですか?"i"の円の色を変える方法(微妙な色)

"i"の円の色をオレンジ色に変更したいのですが、その方法はわかりません。

例えば、私はこれがあります。

click

を、私はこれをしたい:

click orange circle

私はNSAttributedStringでそれをやってみたいが、私は何かを見つけることができません。私はその色を変更する方法をインターネット上で検索した場合

「点画」

は、「i」の文字のサークルで、私はいくつかのUnicodeのトリックを使用することにより UINavigationBarタイトル

+0

「クリック」の「i」が残りの文字よりも別の色を持つ属性付き文字列を作成することを意味しますか? – Sajjon

+0

@Sajjonいいえ、画像の「i」のように「i」の円の色を変更したい – pableiros

+4

NSAttributedStringを使用することは不可能です。または、文字列ベースでも。私はあなたがそのイメージを必要としていると思います。 – Sajjon

答えて

3

を変更するには、結果を取得し、あなたそれはできますか?トリックはcombining dot above文字(U+0307)です。それを別の色を作成し、完全に私の上にドットと重なるようにベースラインを調整します

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でオフセットして、通常のテキストでうまく演奏できるようにしましょう。

+0

ありがとうございます。 – pableiros

関連する問題