1. ホーム
  2. iphone

[解決済み] iphone/ipadです。NSAttributedStringの使い方を教えてください。

2022-12-25 11:33:34

質問

iPhone/iPadのリッチテキストについて、多くの人が言っていますし、多くの人が知っているのは NSAttributedString .

しかし、どのように NSAttributedString ? 私は多くの時間を検索し、これのための抽出された手がかりはありません。

を設定する方法を知っています。 NSAttributedString を設定する方法はわかりましたが、iPhone/iPadでリッチテキストを表示するにはどうしたらよいでしょうか?

公式ドキュメントでは CoreText.Framework とありますが、これはどういう意味でしょうか?

このような簡単な方法はないのでしょうか?

NSAttributedString *str;
.....
UILabel *label;
label.attributedString = str;

どのように解決するのですか?

をご覧ください。 AliSoftware の OHAttributedLabel を見てください。 . これはUILabelのサブクラスで、NSAttributedStringを描画し、UIKitのクラスからNSAttributedStringの属性を設定するための便利なメソッドも提供されています。

レポで提供されているサンプルより。

#import "NSAttributedString+Attributes.h"
#import "OHAttributedLabel.h"

/**(1)** Build the NSAttributedString *******/
NSMutableAttributedString* attrStr = [NSMutableAttributedString attributedStringWithString:@"Hello World!"];
// for those calls we don't specify a range so it affects the whole string
[attrStr setFont:[UIFont systemFontOfSize:12]];
[attrStr setTextColor:[UIColor grayColor]];
// now we only change the color of "Hello"
[attrStr setTextColor:[UIColor redColor] range:NSMakeRange(0,5)];


/**(2)** Affect the NSAttributedString to the OHAttributedLabel *******/
myAttributedLabel.attributedText = attrStr;
// Use the "Justified" alignment
myAttributedLabel.textAlignment = UITextAlignmentJustify;
// "Hello World!" will be displayed in the label, justified, "Hello" in red and " World!" in gray.

注意 iOS 6+ では、属性付き文字列のレンダリングを attributedText プロパティを使ってレンダリングできます。