web-dev-qa-db-ja.com

2つの異なるフォントサイズのNSAttributedStringの例?

NSAttributedStringは本当に私には理解できない。

UILabelにさまざまなサイズのテキストを設定し、NSAttributedStringを使用する方法を収集したいのですが、これに関するドキュメントがどこにもありません。

誰かが私に具体的な例を手伝ってくれるなら、私はそれが大好きです。

たとえば、私が望んでいたテキストは次のとおりだとしましょう:

(in small letters:) "Presenting The Great..."
(in huge letters:) "HULK HOGAN!"

誰かがそれを行う方法を教えてもらえますか?それとも、私が自分で学ぶことができる単純でシンプルなリファレンスですか?私はドキュメントを通して、そしてStack Overflowの他の例を通してでさえ、これを理解しようとしたと断言しますが、私はそれを理解していません。

78
Le Mot Juiced

このようなことをするでしょう…

NSMutableAttributedString *hogan = [[NSMutableAttributedString alloc] initWithString:@"Presenting the great... Hulk Hogan!"];
[hogan addAttribute:NSFontAttributeName
              value:[UIFont systemFontOfSize:20.0]
              range:NSMakeRange(24, 11)];

これにより、20ポイントのテキストで最後の2つの単語が設定されます。文字列の残りはデフォルト値を使用します(これは12ポイントだと思います)。テキストサイズの設定について混乱する可能性があるのは、書体andサイズを同時に設定する必要があることです。各UIFontオブジェクトは、これら両方のプロパティをカプセル化します。

160
bdesham

Swift 3ソリューション

また、ObjCまたはSwiftでインデックスを指定する代わりに、append関数を使用できます。

let attrString = NSMutableAttributedString(string: "Presenting The Great...",
                                           attributes: [ NSFontAttributeName: UIFont.systemFont(ofSize: 20) ])

attrString.append(NSMutableAttributedString(string: "HULK HOGAN!",
                                            attributes: [NSFontAttributeName: UIFont.systemFont(ofSize: 40) ]))
18
iljn

Swift 4ソリューション:

let attrString = NSMutableAttributedString(string: "Presenting The Great...",
                                       attributes: [NSAttributedStringKey.font: UIFont.systemFont(ofSize: 18)]);

attrString.append(NSMutableAttributedString(string: "HULK HOGAN!",
                                        attributes: [NSAttributedStringKey.font: UIFont.systemFont(ofSize: 36)]));
10
Kunal Shah

Swift 4.2ソリューション:

let attrString = NSMutableAttributedString(string: "Presenting The Great...",
                                                   attributes: [NSAttributedString.Key.font: UIFont.systemFont(ofSize: 18)])

attrString.append(NSMutableAttributedString(string: "HULK HOGAN!",
                                                    attributes: [NSAttributedString.Key.font: UIFont.systemFont(ofSize: 36)]))
0
Nick Kirsten

簡単な方法でやりたい場合は、NSAttributedStringのカテゴリを提供する OHAttributedLabel というgitリポジトリがあります。次のようなことができます:

NSMutableAttributedString *mystring = [[NSMutableAttributedString alloc] initWithString:@"My String"];
[mystring setTextColor:[UIColor colorWithRGB:78 green:111 blue:32 alpha:1]];
mystring.font = [UIFont systemFontOfSize:14];

サードパーティのライブラリを使用したくない場合は、 このリンク を参照して、属性付き文字列の使用方法に関する適切なチュートリアルを確認してください。

0
JonahGabriel