サーバーから取得したリッチテキストを表示する必要があるため、UIWebViewを使用しています。今の問題は、UIWebViewで使用されるフォントを制御できないことです。システムフォントを使用するようにフォントを変更するにはどうすればよいですか(アプリケーションの他の部分と一致させるため)?
私は今このようなことをしています:
myRichTextView = [[UIWebView alloc] initWithFrame:CGRectMake(x, y, width, height)];
myRichTextView.backgroundColor = [UIColor clearColor];
[myRichTextView setScalesPageToFit:NO];
[myRichTextView loadHTMLString:myString baseURL:[NSURL URLWithString:myBaseURL]];
繰り返しますが、表示フォントを制御する必要があります。フォントを制御できない場合は、UIWebViewに代わる他の方法を教えてください。
ありがとう
HTMLドキュメントでCSSスタイルシートを参照するか、HTMLドキュメント自体の上部にスタイル情報を配置します
このように文字列を変更すると機能しました。あなたの右クリス、それは何の違いもありません。
NSString *myDescriptionHTML = [NSString stringWithFormat:@"<html> \n"
"<head> \n"
"<style type=\"text/css\"> \n"
"body {font-family: \"%@\"; font-size: %@;}\n"
"</style> \n"
"</head> \n"
"<body>%@</body> \n"
"</html>", @"helvetica", [NSNumber numberWithInt:kFieldFontSize], content];
Webビューで次のCSSを使用して、あなたが言っていることを正確に行います。
body
{
font-family:helvetica;
}
しかし、あなたのものも同様に機能するはずです。奇妙な。私が見ることができる唯一の違いは、フォントとフォントファミリーですが、それはすべきではない違いを生みます。
クリス。
システムフォント
-Apple-system iOS 9およびSafari OS X 10
font-family: -Apple-system;
font-family: '-Apple-system','HelveticaNeue'; // iOS 8 compatible
メソッドを作成しました 与えられたUIColor
とUIFont
の正しいスタイルでHTML本文の一部のテキストをラップします。 Mustafa answer に基づいています。
次のように使用されます。
NSString * htmlString = [MyClass htmlFromBodyString:@"an <b>example</b>"
textFont:[UIFont systemFontOfSize:10]
textColor:[UIColor grayColor]];
[webView loadHTMLString:htmlString baseURL:nil];
私のために働いた別の簡単な方法
UIFont *font = [UIFont systemFontOfSize:15];
NSString *htmlString = [NSString stringWithFormat:@"<span style=\"font-family:Helvetica; font-size: %i\">%@</span>",
(int) font.pointSize,
[bodyText stringWithNewLinesAsBRs]];
[myWebView loadHTMLString:htmlString baseURL:nil];
ただ変える
font:helvetica
に
font-family:helvetica
私が使う
body {
font-family: 'Noteworthy-Bold';
}
私の他のアプリもAppleの「Noteworthy-Bold」を使用しているため、これは私のページ(WebView)でうまく機能します。
独自のフォントを使用する場合は、@ font-faceを使用して、TTFまたはEOTファイルを参照してください。
フォント設定を増やして、使いやすく拡張しやすいソリューションを次に示します。
myHTMLLabel = [[UIWebView alloc] initWithFrame:CGRectMake(myX,myY,myWidth,myHeight)];
myHTMLLabel.userInteractionEnabled=NO;
myHTMLLabel.scalesPageToFit=NO;
[myHTMLLabel setOpaque:NO];
myHTMLLabel.backgroundColor = myBackColor;
NSString *myHTMLText = [NSString stringWithFormat:@"<html>"
"<head><style type='text/css'>"
".main_text {"
" display: block;"
" font-family:[fontName];"
" text-decoration:none;"
" font-size:[fontSize]px;"
" color:[fontColor];"
" line-height: [fontSize]px;"
" font-weight:normal;"
" text-align:[textAlign];"
"}"
"</style></head>"
"<body> <SPAN class='main_text'>[text]</SPAN></body></html>"];
myHTMLText = [myHTMLText stringByReplacingOccurrencesOfString: @"[text]" withString: myText];
myHTMLText = [myHTMLText stringByReplacingOccurrencesOfString: @"[fontName]" withString: myFontName];
myHTMLText = [myHTMLText stringByReplacingOccurrencesOfString: @"[fontSize]" withString: myFontSize];
myHTMLText = [myHTMLText stringByReplacingOccurrencesOfString: @"[fontColor]" withString: myFontColorHex];
myHTMLText = [myHTMLText stringByReplacingOccurrencesOfString: @"[textAlign]" withString: myFontAlign];
NSLog(@"*** renderHTMLText --> myHTMLText: %@",myHTMLText);
[myHTMLLabel loadHTMLString:myHTMLText baseURL:nil];