【Swift】[12]UILabelなどの文字列に装飾を加える方法

UILabelの文字列に、例えば一部分だけフォントを変更したい、文字色を赤くしたい。などを思ったとき、、、

以下のコードを書くことによって実現できます。

...
let attrText = NSMutableAttributedString(string: "表示させる文字列全体")
let setAttribute = settingAttribute(font: font(UIFont型の変数), colorNum: color(UIColor型の変数))
                
UILabel(UILabel等の文字列を表示させるコンポーネント).attributedText = attrText.addAttributes(setAttribute, range: range(NSRange型の変数))

...

private func settingAttribute(font: UIFont, color: UIColor) -> [NSAttributedStringKey : Any]{
        
    let attr = [
        NSAttributedStringKey.font: font,
        NSAttributedStringKey.foregroundColor: color
    ]
    return attr
}

上記のコードにおける5行目のNSRange型の変数の部分は装飾したい文字列の範囲を指定する情報として定義されています。

NSRange型はフィールド変数としてlocationとlengthを持っており、それぞれ以下の意味合いを持ちます。

location:該当文字列の先頭が全体の文字列の何番目か。

length:該当文字列が何文字か。

ぜひ、ご活用ください。。。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です