カテゴリ: Swift 更新日: 2026/02/28

SwiftでAttributedStringとNSAttributedStringを使ったリッチテキスト表示の基本

Swift AttributedString/NSAttributedStringでリッチテキスト表示
Swift AttributedString/NSAttributedStringでリッチテキスト表示

先生と生徒の会話形式で理解しよう

生徒

「先生、Swiftで文字の色を変えたり、一部分だけ太字にしたりする方法はありますか?」

先生

「はい、それにはAttributedStringNSAttributedStringという仕組みを使います。これを使うと、文字列に色やフォントなどの装飾を加えてリッチテキストを表示できますよ。」

生徒

「リッチテキストって何ですか?」

先生

「リッチテキストとは、普通の文字列ではなく、色やサイズ、太字や斜体といった装飾がついた文字列のことです。たとえばLINEのメッセージで絵文字や色付きの文字を見たことがあるでしょう?それと同じようなイメージです。」

1. AttributedStringとNSAttributedStringとは?

1. AttributedStringとNSAttributedStringとは?
1. AttributedStringとNSAttributedStringとは?

AttributedStringはSwiftで新しく導入された仕組みで、直感的にリッチテキストを扱うことができます。一方、NSAttributedStringは昔から使われている方法で、UIKitやAppKitでも幅広く利用されています。

どちらも「文字列に属性(色やフォントなどの情報)を持たせる」ための仕組みです。初心者でも理解しやすいように、まずはAttributedStringから見ていきましょう。

2. AttributedStringの基本

2. AttributedStringの基本
2. AttributedStringの基本

SwiftのAttributedStringを使えば、簡単に部分的に装飾を加えられます。次の例では、名前の部分だけ赤くしています。


import SwiftUI

var text: AttributedString {
    var message = AttributedString("こんにちは、Taroさん!")
    if let range = message.range(of: "Taro") {
        message[range].foregroundColor = .red
        message[range].font = .boldSystemFont(ofSize: 18)
    }
    return message
}

これをSwiftUIのTextに渡せば、赤くて太字の「Taro」が表示されます。

3. 複数の装飾を組み合わせる

3. 複数の装飾を組み合わせる
3. 複数の装飾を組み合わせる

文字色だけでなく、フォントサイズや斜体、下線なども自由に組み合わせられます。


var message = AttributedString("重要なお知らせです!")
if let range = message.range(of: "重要") {
    message[range].foregroundColor = .blue
    message[range].font = .boldSystemFont(ofSize: 20)
    message[range].underlineStyle = .single
}

「重要」の部分が青色で太字、さらに下線付きになります。ニュースアプリやお知らせ画面などでよく使われる表現です。

4. NSAttributedStringの基本

4. NSAttributedStringの基本
4. NSAttributedStringの基本

UIKitや古い環境では、NSAttributedStringを使います。こちらも考え方は同じで、属性を指定してリッチテキストを作ります。


import UIKit

let attributes: [NSAttributedString.Key: Any] = [
    .foregroundColor: UIColor.green,
    .font: UIFont.systemFont(ofSize: 18, weight: .bold)
]

let attributedText = NSAttributedString(string: "Hello Swift!", attributes: attributes)

この例では「Hello Swift!」という文字列が緑色で太字になります。これをUILabelに設定すれば色付きで表示されます。

5. 部分的に装飾するNSAttributedString

5. 部分的に装飾するNSAttributedString
5. 部分的に装飾するNSAttributedString

部分的に違う装飾をしたい場合は、NSMutableAttributedStringを使います。


let text = NSMutableAttributedString(string: "Swiftでリッチテキスト")

text.addAttribute(.foregroundColor, value: UIColor.red, range: NSRange(location: 0, length: 5))
text.addAttribute(.font, value: UIFont.boldSystemFont(ofSize: 20), range: NSRange(location: 6, length: 5))

これで「Swift」が赤色、「リッチテキスト」が太字になります。アプリ内で重要な単語を強調したいときに便利です。

6. AttributedStringとNSAttributedStringの違い

6. AttributedStringとNSAttributedStringの違い
6. AttributedStringとNSAttributedStringの違い

両者の違いをまとめると次のようになります。

  • AttributedString:SwiftUIに最適化された新しい方法。コードが直感的で書きやすい。
  • NSAttributedString:UIKitや古いAPIで広く使われる方法。対応範囲が広い。

SwiftUIを使う場合はAttributedString、UIKitを使う場合はNSAttributedStringを選ぶと良いでしょう。

Swiftを基礎から実践レベルまで学びたい人や、 iOSアプリ開発を本格的に始めたい人には、 定番の入門+実践書がこちらです。

Swift実践入門をAmazonで見る

※ Amazon広告リンク

7. リッチテキストが役立つ場面

7. リッチテキストが役立つ場面
7. リッチテキストが役立つ場面

リッチテキストは、アプリの見やすさやユーザー体験を向上させるために欠かせません。例えば次のような場面で役立ちます。

  • チャットアプリでユーザー名を色付きにする
  • エラーメッセージの一部を赤くして強調する
  • ニュースアプリで見出しを太字にする
  • イベントの日時だけを大きく表示する

初心者のうちからこうした装飾を学んでおくと、アプリの完成度がぐっと上がります。

関連セミナーのご案内

Windowsで始めるiPhoneアプリ開発入門|Swiftの基本と仕組みを1時間で攻略

Windowsで始めるiPhoneアプリ開発入門|Swiftの基本と仕組みを1時間で攻略

「iPhoneアプリを作りたいけれど、Macを持っていないから諦めている」そんな方のための画期的な入門講座です。実は、プログラミングの本質を学ぶのに高価な機材は必要ありません。本講座では、Windowsパソコンを使用し、クラウド環境を活用してAppleの最新言語Swift(スウィフト)の基礎を最短距離でマスターします。

Windowsで実現する開発環境

【つくるもの】
ブラウザ上で動作する「スマート・計算ツール」や「データ判定プログラム」をゼロから作成します。変数の扱いや条件分岐など、iPhoneアプリの内部で動くロジックを自分の手で構築する感動を体験してください。

【開発環境】
ブラウザだけでSwiftが動くプロ仕様のオンラインエディタ(Replit等)を使用します。面倒な設定は一切不要。今あるWindows PCで、プロのエンジニアと同じコードを書き始められます。

この60分で得られる3つの理解

1. WindowsでのSwift実行環境の作り方

OSの壁を越え、クラウドを活用してスマートに学習を開始する「現代的な開発スタイル」を習得します。

2. Swiftの基本構造(変数・型・定数)

iPhoneアプリ特有のデータの扱い方や、Appleが推奨する「安全で美しいコード」の書き方を学びます。

3. アプリエンジニアとしてのロードマップ

将来的にiOSエンジニアとして副業・転職するために必要な準備や、Mac選びのポイントを伝授します。

※本講座は、将来的にiPhoneアプリ開発で収益化や転職を目指したい未経験者のためのエントリー講座です。マンツーマン形式により、Windows環境ならではの疑問にもその場でお答えし、あなたの理解度に合わせて進行します。

セミナー画像

Windowsで始めるiPhoneアプリ開発入門

カテゴリの一覧へ
新着記事
New1
Go言語
Go言語のスライスの容量(cap)と長さ(len)を理解しよう
New2
Swift
SwiftでAttributedStringとNSAttributedStringを使ったリッチテキスト表示の基本
New3
Go言語
Swiftのsubstring完全ガイド!初心者でもわかる文字列の切り出し方法
New4
Kotlin
Kotlinの変数と定数の基本!valとvarの使い分けとデータ型の基本
人気記事
No.1
Java&Spring記事人気No1
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.2
Java&Spring記事人気No2
Kotlin
Kotlinのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.3
Java&Spring記事人気No3
Go言語
Go言語のトランザクション処理を完全解説!Begin・Commit・Rollbackを初心者向けにやさしく理解
No.4
Java&Spring記事人気No4
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.5
Java&Spring記事人気No5
Go言語
Go言語でREST APIを作る設計と実装パターン完全ガイド!初心者でもわかるAPI開発
No.6
Java&Spring記事人気No6
Go言語
Go言語でHTTPリクエストのタイムアウト設定を安全に行う方法|初心者向け完全ガイド
No.7
Java&Spring記事人気No7
Go言語
Swiftの変数と定数の使い方を完全ガイド!初心者でもわかる基本文法
No.8
Java&Spring記事人気No8
Swift
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応