[解決済み】NSAttributedStringはどのように使うのですか?
2022-03-27 21:30:08
質問
複数のカラーを
NSString
または
NSMutableStrings
は不可能です。そこで、少し聞いたことがあるのですが
NSAttributedString
と共に導入された
iPad SDK 3.2
(もしくは3.2前後)で、iPhoneでは現在
iPhone SDK 4.0 ベータ
.
3色を持つ文字列が欲しいのですが。
3つの別々のNSStringsを使わない理由は、それぞれの長さが
NSAttributedString
部分文字列は頻繁に変更されるため、3つの別々の文字列を再配置するための計算を使用しないことを希望します。
NSString
オブジェクトを作成します。
を使用して可能であれば
NSAttributedString
をどのように作るか - (NSAttributed文字列で不可能な場合、どのようにするか)。
編集する
リメンバー
@"first"
,
@"second"
と
@"third"
はいつでも他の文字列に置き換わる。そのため、ハードコードされたNSRangeの値を使用してもうまくいきません。
解決方法は?
属性付き文字列を構築する場合、私は物事をすっきりさせるために、mutableサブクラスを使用することを好みます。
とはいえ、3色の属性付き文字列を作るには、次のようにします。
NSMutableAttributedString *string = [[NSMutableAttributedString alloc] initWithString:@"firstsecondthird"];
[string addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(0,5)];
[string addAttribute:NSForegroundColorAttributeName value:[UIColor greenColor] range:NSMakeRange(5,6)];
[string addAttribute:NSForegroundColorAttributeName value:[UIColor blueColor] range:NSMakeRange(11,5)];
<サブ ブラウザで入力された 穴埋め実装者
もちろん、このように範囲をハードコードするつもりはないでしょう。 その代わりに、次のようなことができるかもしれません。
NSDictionary *wordToColorMapping = ....; //an NSDictionary of NSString => UIColor pairs
NSMutableAttributedString *string = [[NSMutableAttributedString alloc] initWithString:@""];
for (NSString *word in wordToColorMapping) {
UIColor *color = [wordToColorMapping objectForKey:word];
NSDictionary *attributes = [NSDictionary dictionaryWithObject:color forKey:NSForegroundColorAttributeName];
NSAttributedString *subString = [[NSAttributedString alloc] initWithString:word attributes:attributes];
[string appendAttributedString:subString];
[subString release];
}
//display string
関連
-
[解決済み】リンカーコマンドが終了コード1で失敗(起動を確認するには-vを使用)、Xcode 8、Swift 3
-
[解決済み】iOS用のプライベートメッセージUI(受信、送信、作成)フレームワークはありますか?
-
[解決済み] リンカーコマンドが終了コード 1 で失敗した(起動を確認するには -v を使用)、Xcode 8、Swift 3
-
[解決済み] Info.plist ユーティリティのエラーです。"そのようなファイルがないため、Info.plistを開くことができませんでした"
-
[解決済み] 脱獄したiphoneで`uicache`コマンドは何をするのですか?[クローズド]
-
[解決済み] Xcode 6: iOS 8.1 The Developer Disk Imageをマウントできませんでした。
-
[解決済み] キーボードがあるときに、UITextFieldを編集開始時に上に移動させるには?
-
[解決済み] UITableViewの選択を無効にするにはどうすればよいですか?
-
[解決済み] Unwind segueは何に使うのか、どう使うのか?
-
[解決済み] NSAttributedStringで文字列の色を変更する?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Xcode - 'NSUnknownKeyException', reason: ... this class is not key value coding-compliant for the key X" エラーの修正方法とは?
-
[解決済み] ウィンドウ階層にないビューを持つUIViewControllerでUIViewControllerを表示しようとする
-
[解決済み] Xcode コマンド /usr/bin/codesign は終了コード 1 で失敗しました : errSecInternalComponent
-
[解決済み] Xcodeエラー:SDK 'iOS 10.0'の製品タイプ 'Application'では、コード署名が必要です。
-
[解決済み] swiftで「floor」が使用できない
-
[解決済み] Xcode 9の問題を修正しました。"iPhoneはビジー状態です。iPhoneのデバッガーサポートを準備中"
-
[解決済み] Swiftを使って音を鳴らすには?
-
[解決済み] ブリッジングヘッダ用のプリコンパイルヘッダの発行に失敗しました。
-
[解決済み] あなたのリクエストはエラーを発生させました。[newNullResponse]?
-
[解決済み】Swift RangeからNSRange?