iPhone开发 - 设置UIWebView字体

Mus*_*afa 45 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]];
Run Code Online (Sandbox Code Playgroud)

再次,需要控制显示字体.如果我无法控制字体,请告诉我UIWebView的其他替代方法.

谢谢

Mus*_*afa 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];
Run Code Online (Sandbox Code Playgroud)

  • 我一直在等Apple让用户更改系统字体.所以我走得更远一点.我做了一个`UIFont*font = [UIFont systemFontOfSize:21];`而不是硬编码`@"helvetica"`我输入`font.familyName` (15认同)
  • 好吧,没错.另一个疑问是,哪种HTML字体相当于ios中的"SystemFont"?希望将其作为一个新问题发布不是一个大问题...... (2认同)

小智 22

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


Pyj*_*Sam 15

我在Web视图中使用以下CSS来完成您所说的内容.

body
{
    font-family:helvetica;
}
Run Code Online (Sandbox Code Playgroud)

但你的看起来应该也可以.奇怪.我唯一能看到的是font vs font-family,但这应该没有区别.

克里斯.


Les*_*win 11

系统字体

iOS 9和Safari OS X 10上的-apple-system

font-family: -apple-system;
font-family: '-apple-system','HelveticaNeue'; // iOS 8 compatible
Run Code Online (Sandbox Code Playgroud)


Rob*_*ert 10

我创建了一个方法,在HTML主体中包含一些文本,其中包含给定UIColor和的正确样式UIFont.它基于穆斯塔法的答案.

它是这样使用的:

NSString * htmlString = [MyClass htmlFromBodyString:@"an <b>example</b>"
                                           textFont:[UIFont systemFontOfSize:10]
                                          textColor:[UIColor grayColor]];
[webView loadHTMLString:htmlString baseURL:nil];
Run Code Online (Sandbox Code Playgroud)


Mas*_*adi 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];
Run Code Online (Sandbox Code Playgroud)