【问题标题】:Formatting strings in UIWebView在 UIWebView 中格式化字符串
【发布时间】:2016-02-11 15:51:00
【问题描述】:

我正在构建一个支持 iOS 9 及更高版本的 iOS 应用。

我正在使用 UIWebView 来显示存储在 RTF 文档中的文本,这些文本包含在我的应用程序包中。我使用以下代码将 RTF 文件的内容插入到 web 视图中:

    NSURL *filePath = [[NSBundle mainBundle] URLForResource:self.detailItem withExtension:@"rtf"];
    NSURLRequest *request = [NSURLRequest requestWithURL:filePath];
    [self.detailWebView loadRequest:request];

我也使用它来将文本格式化为正确的大小:

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    NSString *fontSize = @"80";
    NSString *jsString = [[NSString alloc] initWithFormat:@"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '%d%%'", [fontSize intValue]];
    [self.detailWebView stringByEvaluatingJavaScriptFromString:jsString];
}

我通常从不使用 JavaScript,所以我并没有声称知道它是如何工作的,但它使我能够调整 fontSize 字符串并准确地达到我想要的大小。文本以与我的应用程序中其余部分相同的字体显示,一切看起来都很好。

问题是我希望能够在 Web 视图中显示一些其他文本,但我想从代码中的 NSString 加载它,所以我可以附加其他字符串并操纵用户看到的内容。当我这样做而不是从 RTF 文件加载时,我得到了非常不同的格式:

[self.detailWebView loadHTMLString:@"This is a string" baseURL:nil];

这出现在一些讨厌的 Times New Roman 风格字体中,并且文本比从 RTF 文件加载的文本要小。我意识到我可以在我的字符串中构建一些 html 标记来添加格式,但是我想了解为什么 webViewDidFinishLoad 中的 js 格式没有被应用,以及我可以做些什么来实现我在 web 视图中使用的所有字符串的通用格式.

【问题讨论】:

    标签: ios uiwebview nsstring


    【解决方案1】:

    如果您在 iOS 上需要一些 UIWebView 文本格式,可以查看我使用 SWIFT 的方法。 https://github.com/Vanyaslav/Swiftyyjsformatter 希望,它会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多