我必须显示我从服务器提取的富文本,因此我使用的是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的其他替代方法。
谢谢
答案 0 :(得分:103)
当我像这样修改字符串时它起作用了。你正确的克里斯,它应该没有任何区别。
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];
答案 1 :(得分:22)
在HTML文档中引用css样式表或将样式信息放在HTML文档本身的顶部
答案 2 :(得分:15)
我在网络视图中使用以下CSS来完全按照您的说法进行操作。
body
{
font-family:helvetica;
}
但你的看起来应该也可以。奇怪。我能看到的唯一区别是font vs font-family,但不应该有所作为。
克里斯。
答案 3 :(得分:11)
系统字体
iOS 9&amp; amp;上的-apple-system Safari OS X 10
font-family: -apple-system;
font-family: '-apple-system','HelveticaNeue'; // iOS 8 compatible
答案 4 :(得分:10)
I made a method在HTML正文中包含一些文本,其中包含给定UIColor
和UIFont
的正确样式。它基于Mustafa answer。
它的用法如下:
NSString * htmlString = [MyClass htmlFromBodyString:@"an <b>example</b>"
textFont:[UIFont systemFontOfSize:10]
textColor:[UIColor grayColor]];
[webView loadHTMLString:htmlString baseURL:nil];
答案 5 :(得分:6)
另一种对我有用的简单方法
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];
答案 6 :(得分:4)
只需更改
font:helvetica
到
font-family:helvetica
答案 7 :(得分:2)
我用
body {
font-family: 'Noteworthy-Bold';
}
这适用于我的about-page(WebView),因为我的应用程序的其余部分也使用Apple的“Noteworthy-Bold”。
如果您想使用自己的字体,请使用@ font-face并参考TTF或EOT文件。
答案 8 :(得分:2)
这是我易于使用且易于扩展的解决方案,具有更多字体设置:
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];