NSUnderlineStyleAttributeName, NSStrikethroughStyleAttributeName

NSUnderlineStyleAttributeName, NSStrikethroughStyleAttributeName

下線や取り消し線のスタイルを示すNSNumberオブジェクトです。
スタイルは、NSUnderlineStyleとして定義されている以下の値を使用して指定します。なお、NSUnderlineStyleNaneとNSUnderlineStyleSingle以外は、iOS 6では使えません。

[表2] 下線、取り消し線のスタイル(NSUnderlineStyle)

定義値スタイル
NSUnderlineStyleNone0x00なし
NSUnderlineStyleSingle0x01単一線
NSUnderlineStyleThick0x02太線
NSUnderlineStyleDouble0x09二重線
NSUnderlinePatternSolid0x0000実線
NSUnderlinePatternDot0x0100点線
NSUnderlinePatternDash0x0200破線(鎖線)
NSUnderlinePatternDashDot0x0300一点鎖線
NSUnderlinePatternDashDotDot0x0400二点鎖線
NSUnderlineByWord0x8000単語の下のみ

ここで、スタイル(NSUnderLineStyleXxx)、パターン(NSUnderlinePatternXxx)、単語ごとの指定(NSUnderlineByWord)は、OR加算して使用します。
例えば、二重点線を単語の下のみに引くには、以下のコードを記述します(ソースコード27)。生成したテキストを表示した結果が下図です(図8)。

[ソースコード27] 下線付きテキストの生成

NSUnderlineStyle underlineStyle =
NSUnderlineStyleDouble | NSUnderlinePatternDot | NSUnderlineByWord;

NSAttributedString *underlineText =
[[NSAttributedString alloc] initWithString:@"下線付きテキスト   Underline"
               attributes:@{NSUnderlineStyleAttributeName: @(underlineStyle)}];

図8: 下線付きテキスト

取り消し線を表示するには、NSUnderlineStyleAttributeNameの代わりにNSStrikethroughStyleAttributeNameを使用します。

NSUnderlineColorAttributeName,
NSStrikethroughColorAttributeName(iOS 7以降)

下線、取り消し線の色を示すUIColorオブジェクトです。

NSStrokeColorAttributeName

縁取りの色を示すUIColorオブジェクトです。
指定がない場合、NSFourgroundColorが指定する色が縁取りに使用されます。

NSStrokeWidthAttributeName

縁取りの太さ(フォントのポイントサイズに対するパーセンテージ)を示すNSNumber(float)オブジェクトです。
設定する値の符号によりテキストの塗りつぶし設定が異なります(表3)。

[表3] 設定値の符号と塗りつぶし、枠線の関係

値塗りつぶし枠線
0ありなし
正の値なしあり
負の値ありあり

[ソースコード28] 縁取りテキストを生成

// 塗りつぶしのみのテキスト(通常の表示)
NSAttributedString *filledText =
[[NSAttributedString alloc] initWithString:@"塗りつぶしと縁取り"
              attributes:@{NSForegroundColorAttributeName: [UIColor lightGrayColor]}];
// 縁取りのみのテキスト
NSAttributedString *outlineText =
[[NSAttributedString alloc] initWithString:@"塗りつぶしと縁取り"
              attributes:@{NSStrokeColorAttributeName: [UIColor blackColor],
                           NSStrokeWidthAttributeName: @(5.0f)}]; // 正の値
// 縁取りと塗りつぶしのテキスト 
NSAttributedString *filledOutlineText =
[[NSAttributedString alloc] initWithString:@"塗りつぶしと縁取り"
              attributes:@{NSForegroundColorAttributeName: [UIColor lightGrayColor],
                               NSStrokeColorAttributeName: [UIColor blackColor],
                               NSStrokeWidthAttributeName: @(-5.0f)}]; // 負の値

上記の例で生成した属性付きテキストを表示した結果が下図です(図9)。

図9: 塗りつぶし(上)、縁取り(中)、塗りつぶしと縁取り(下)

属性付きテキストに使用できる属性はこれだけではありません。残りの属性については次回解説します。

この記事のもとになった書籍
UIKit徹底解説 iOSユーザーインターフェイスの開発

西方 夏子 著/丸山 弘詩 編
価格:3,800円+税
発売日:2014年06月13日発売
ISBN:978-4-8443-3608-2
発行:インプレスジャパン

UIKit徹底解説 iOSユーザーインターフェイスの開発

ユーザーインターフェイス(UI)を制御するUIKitは、iOSアプリの中心的役割を担います。UIKitを深く理解することが、アプリ開発での多くの問題解決に繋がります。本書では、アプリの起動から画面表示、画面レイアウト、イベントハンドリングと、常に稼働しているUIKitの機能を丁寧に解説します。メインとなるコンテンツの表示からステータスバーを含むバーの制御、フォントやテキストの改良など、ビューやテキストの「外観」(アピアランス)を改善する内容も充実させています。使用頻度の高いテーブルビューとコレクションビュー、そしてユニバーサルアプリ化に有益なカスタムコンテナビューコントローラに関しては、チュートリアル形式で解説します。また、StoryboardやAuto Layoutも今後のアプリ開発でさらに重要となる状況を見越して、詳細解説に留まらず同じくチュートリアルで多くの具体例を紹介します。

Amazon詳細ページへImpress詳細ページへ

この記事のキーワード :

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30