在UIWebView中格式化字符串

时间:2016-02-11 15:51:00

标签: ios uiwebview nsstring

我正在构建支持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视图中使用的所有字符串的通用格式

1 个答案:

答案 0 :(得分:0)

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