iOSはNSMuttible AttributedStringを利用してリッチテキストを実現する方法でまとめています。


前言
iOSの開発過程では、字体に下線を付けたり、色や大きさのフォントを表示するなどの需要が多く使われています。このような需要は常にバイドゥやGoogleに直接コードを付けてきて、システムの整理をしていません。今日は時間があります。この部分を整理して、後続の開発に便利です。閑話は言いません。次に私と一緒にNSMuttible AttributedStringを調べてみましょう。
NSAttributedString
NSAttributedStringオブジェクトは、文字列内の単一文字または文字範囲に適用される文字列および関連する属性セット(例えば、フォントおよびピッチ)を管理する。NSAttributedStringオブジェクトのデフォルトフォントはHelvetica 12点であり、プラットフォームのデフォルトシステムフォントとは異なるかもしれない。したがって、あなたのアプリケーションに適用される非標準属性の新しい文字列を作成したいかもしれません。NSAttributedStringクラスで使用される段落やルーラーの属性は、NSAttributedStringクラスとそのサブクラスNSMumable ParaphStyleを使用してパッケージ化することもできます。
実用化方法と使用方法
実用化の方法
文字列初期化を使う

- (instancetype)initWithString:(NSString *)str;
コードの例

NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:@"    "];
辞書には属性名と属性値がいくつか保存されます。

- (instancetype)initWithString:(NSString *)str attributes:(NSDictionary<NSString *,id> *)attrs;
コードの例

NSDictionary *attributedDict = @{
          NSFontAttributeName:[UIFont systemFontOfSize:16.0],
          NSForegroundColorAttributeName:[UIColor redColor],
          NSUnderlineStyleAttributeName:@(NSUnderlineStyleThick)
          };
 NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:@"    " attributes:attributedDict];
NSAttributedStringを使用して初期化し、NSMutableString、NSStringと同様です。

- (instancetype)initWithAttributedString:(NSAttributedString *)attrStr;
使い方
ある範囲のテキストに複数の属性を設定する方法

- (void)setAttributes:(NSDictionary<NSString *,id> *)attrs range:(NSRange)range;
//コード例

NSString *string = @"    ";
NSDictionary *attributedDict = @{
          NSFontAttributeName:[UIFont systemFontOfSize:16.0],
          NSForegroundColorAttributeName:[UIColor redColor],
          NSUnderlineStyleAttributeName:@(NSUnderlineStyleThick)
          };
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:string];
 
[attributedString setAttributes:attributedDict range:NSMakeRange(0, string.length)];
ある範囲のテキストに属性を付ける方法

- (void)addAttribute:(NSString *)name value:(id)value range:(NSRange)range;
//コード例

NSString *string = @"    ";
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:string];
 
[attributedString addAttribute:NSForegroundColorAttributeName value:[UIColor blueColor] range:NSMakeRange(0, string.length)];
ある範囲のテキストに複数の属性を追加する方法

- (void)addAttributes:(NSDictionary<NSString *,id> *)attrs range:(NSRange)range;
//コード例

NSString *string = @"    ";
NSDictionary *attributedDict = @{
          NSFontAttributeName:[UIFont systemFontOfSize:16.0],
          NSForegroundColorAttributeName:[UIColor redColor],
          NSUnderlineStyleAttributeName:@(NSUnderlineStyleThick)
          };
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:string];
 
[attributedString addAttributes:attributedDict range:NSMakeRange(0, string.length)];
ある範囲の属性を削除する方法

- (void)removeAttribute:(NSString *)name range:(NSRange)range;
//コード例

 NSString *string = @"    ";
 NSDictionary *attributedDict = @{
          NSFontAttributeName:[UIFont systemFontOfSize:16.0],
          NSForegroundColorAttributeName:[UIColor redColor],
          NSUnderlineStyleAttributeName:@(NSUnderlineStyleThick)
          };
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:string];
 
[attributedString addAttributes:attributedDict range:NSMakeRange(0, string.length)];
 
 
[attributedString removeAttribute:NSForegroundColorAttributeName range:NSMakeRange(0, string.length)];
属性と説明
key
説明
NSFontAttributeName
フォント、valueはUICFontオブジェクトです。
NSParaphStyle AttributeName
描画のスタイル(中央揃え、改行モード、間隔など様々なスタイル)、valueはNSParaphStyleオブジェクトです。
NSForeground ColorAttributeName
文字の色、valueはUICFontオブジェクトです。
NSLigatureAttributeName
文字の連体、valueはNSNumberです。
NSKernAttributeName
文字の間隔
NSStrikethroughStyle AttributeName
取り消し線、valueはNSNumberです。
NSUndeline Style AttributeName
下線、valueはNSNumberです。
NSStroke ColorAttributeName
辺の色を描きますが、valueはUICColorです。
NSStroke WidthAttributeName
描画幅、valueはNSNumberです。
NS ShadowAttributeName
影、valueはNSShadowオブジェクトです。
NSTextEffect AttributeName
文字効果、valueはNSStringです。
NSAttachment AttributeName
ちなみに、valueはNSTextAttachmentの対象です。
NSLink AttributeName
リンク、valueはNS URL or NSStringです。
NSBaseline Offset AttributeName
基本オフセット、valueはNSNumberオブジェクトです。
NSStrikethroughColorAttributeName
線の色を削除します。valueはUICColorです。
NSObliqueness AttributeName
フォントの傾斜
NSExpansion AttributeName
フォントのフラット化
NSVerical GlyphFormAttributeName
垂直または水平、valueはNSNumber、0は水平、1垂直を表します。
リッチテキスト段落レイアウトの属性説明
属性
説明
LINE Spacing
フォントの行間
first Line HeadIndent
最初の行のインデント
alignment
(両端揃え)テキストの配置:(左、中、右、両端揃えは自然)
ラインBreakMode
エンディング部分の内容は…で省略されています(「…wxyz」、「abcd…」、「ab…yz」)
headIndent
全体のインデント(最初の行を除く)
minimumLine Height
最低行高
maximyLine Height
最大行の高さ
paragraphacing
セグメントとセグメントの間隔
paragraphh SpacingBefore
セグメントの最初の行の空白スペース
baseWritingDirection
書く方向(全部で三つ)
hphenation Factor
ハイフネーション属性はiOSで、一意サポートの値はそれぞれ0と1です。
締め括りをつける
以上はこの文章の全部の内容です。本文の内容は皆さんの学習や仕事に対して一定の参考となる学習価値を持っています。質問があれば、メッセージを書いて交流してください。ありがとうございます。