我正在构建支持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视图中使用的所有字符串的通用格式
答案 0 :(得分:0)
如果您需要在iOS上进行一些UIWebView文本格式化,您可以使用SWIFT查看我的方法。 https://github.com/Vanyaslav/Swiftyyjsformatter 希望,它有所帮助。