iPhone开发 – 设置UIWebView字体

我必须显示丰富的文本,我从服务器拉,所以我使用的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的其他select。

谢谢

在HTML文档中引用CSS样式表,或将样式信息放入HTML文档本身的顶部

它工作时,我修改了这样的string。 你的克里斯,应该没有什么区别。

 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; } 

但是你的样子看起来应该是一样的。 奇怪。 唯一的区别是我可以看到的是字体与字体家族,但这不应该有所作为。

克里斯。

系统字体

iOS 9和Safari OS X 10上的苹果系统

 font-family: -apple-system; font-family: '-apple-system','HelveticaNeue'; // iOS 8 compatible 

我做了一个方法 ,在给定的UIColorUIFont的正确样式的HTML体内包装一些文本。 这是基于穆斯塔法的答案 。

它是这样使用的:

 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'; } 

这适用于我的关于页面(WebView),因为我的应用程序的其余部分也使用苹果的“值得注意的粗体”。

如果您要使用自己的字体,请使用@ font-face并引用TTF或EOT文件。

这里是我易于使用和易于扩展解决scheme与更多的字体设置:

  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];