2

我有一个 UIWebview 我想更改字体大小。为此,我只需使用 javascript :

NSString *jsString = [NSString stringWithFormat:@"document.body.style.webkitTextSizeAdjust= '%d%%'",50];
    [t_webview stringByEvaluatingJavaScriptFromString:jsString];

问题是当我将字体大小设置为 50% 时,uiwebview 的内容下方有一个很大的空白区域。

我试图通过运行以下 js 将我的 webview 调整为适合实际内容大小的高度,但它总是返回 100% 文本的高度,而不是 50% 和实际的高度:

NSLog(@"font size: %i%%",theHeightIWant);
    NSString* t_height = [t_webview stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight"];
    NSLog(@"height before: %@",t_height);

    NSString *jsString = [NSString stringWithFormat:@"document.body.style.webkitTextSizeAdjust= '%d%%'",theHeightIWant];
    [t_webview stringByEvaluatingJavaScriptFromString:jsString];

    t_height = [t_webview stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight"];
    NSLog(@"height after: %@",t_height);

---- 日志 ------

font size: 95%
height before: 932
height after: 932
font size: 90%
height before: 932
height after: 932
font size: 85%
height before: 932
height after: 932

我也尝试使用 document.documentElement.scrollHeight 而不是 document.body.offsetHeight 但这也不起作用。

谁能帮我?谢谢。

编辑:这是我将 html 加载到 webview 的方式:

NSString* t_html = [NSString stringWithFormat:@"<html><body>%@</body></html>",t_htmlPharmaco];
    [webview loadHTMLString:t_html baseURL:[[NSBundle mainBundle] bundleURL]];
4

1 回答 1

0

我不确定这是否适用于 UIWebView。但在 iOS 中,所有控件(据我所知)在设置内容之前都会设置其高度属性。

话虽这么说,我会在设置 webview 内的内容之前尝试调整字体大小,或者我会按照你的操作方式渲染 webview,然后当 webview 被正确创建时,然后获取它的实例来调整高度。

如果您是否想UIWebView在更改内容大小的同时保持大小不变​​,还会出现另一个问题?(如果是这样,请使用@jcesar 的答案)。但是,如果您要更改大小,UIWebView则需要更改 webview 大小

于 2012-08-28T13:57:28.337 回答