[解決済み] NSAttributedTextへのHTMLのパース - フォントを設定するには?
2022-04-30 14:03:06
質問
iPhoneでUITableViewCellにhtmlでフォーマットされたテキストのスニペットをきれいに表示させようと思っています。
今のところ、こんな感じです。
NSError* error;
NSString* source = @"<strong>Nice</strong> try, Phil";
NSMutableAttributedString* str = [[NSMutableAttributedString alloc] initWithData:[source dataUsingEncoding:NSUTF8StringEncoding]
options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType,
NSCharacterEncodingDocumentAttribute: [NSNumber numberWithInt:NSUTF8StringEncoding]}
documentAttributes:nil error:&error];
これはちょっとだけ効果があります。太字で'Nice'と書かれたテキストが出来ました。しかし、フォントはTimes Romanに設定されています。これは私が欲しいフォントフェイスではありません。 私はdocumentAttributesで何かを設定する必要があると思っていますが、どこにも例が見当たりません。
どうすればいいですか?
解決しました。ちょっと面倒だし、ベストな答えではないかもしれませんが。
このコードは、すべてのフォントの変更を通過します。フォントに "Times New Roman" と "Times New Roman BoldMT" を使用していることは知っています。 しかし、それとは関係なく、これは、太字のフォントを見つけ、私はそれらをリセットすることができます。また、サイズもリセットすることができます。
正直なところ、パース時に設定する方法があればいいのですが・・・、あっても見つかりません。
NSRange range = (NSRange){0,[str length]};
[str enumerateAttribute:NSFontAttributeName inRange:range options:NSAttributedStringEnumerationLongestEffectiveRangeNotRequired usingBlock:^(id value, NSRange range, BOOL *stop) {
UIFont* currentFont = value;
UIFont *replacementFont = nil;
if ([currentFont.fontName rangeOfString:@"bold" options:NSCaseInsensitiveSearch].location != NSNotFound) {
replacementFont = [UIFont fontWithName:@"HelveticaNeue-CondensedBold" size:25.0f];
} else {
replacementFont = [UIFont fontWithName:@"HelveticaNeue-Thin" size:25.0f];
}
[str addAttribute:NSFontAttributeName value:replacementFont range:range];
}];
関連
-
[解決済み】ある要素を別の要素に移動させるには?
-
[解決済み] textareaのresizableプロパティを無効にするにはどうしたらよいですか?
-
[解決済み] 要素を水平方向にセンタリングする方法
-
[解決済み] CSSでcellpaddingとcellspacingを設定する?
-
[解決済み] JavaScriptで要素のクラスを変更するにはどうすればよいですか?
-
[解決済み] リンクのように動作するHTMLボタンを作成する方法
-
[解決済み] HTML 5: Is it <br>, <br/>, or <br />?
-
[解決済み] XHTMLの自己完結型タグを除くオープンタグにマッチするRegEx
-
[解決済み] How can I set the default value for an HTML <select> element?
-
[解決済み】jQueryでチェックボックスがチェックされているかどうかを確認するにはどうすればよいですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] HTMLにおける'"'エンティティの使用法
-
[解決済み] slackのチームIDやチャンネルIDを調べる最も簡単な方法は何ですか?
-
[解決済み] CSSでテキストを垂直方向にセンタリングするには?[重複しています]
-
[解決済み] div' コンテナに合わせて画像を自動リサイズするにはどうしたらいいですか?
-
[解決済み] <button> vs. <input type="button" />. Which to use?
-
[解決済み] HTMLのid属性とname属性の違い
-
[解決済み] 入力フィールドに :before や :after 疑似要素を使用できますか?
-
[解決済み] テーブル内のテキストアラインクラス
-
[解決済み] Webサイトのブラウザタブアイコン(ファビコン)を追加する方法を教えてください。
-
[解決済み] マークダウンにおける相互参照 (名前付きアンカー)