2012-08-28 193 views
2

我有一个UIWebview我想更改字体大小。 要做到这一点,我只是用javascript:更改字体大小时调整UIWebview的框架大小

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

的问题是,当我设置字体大小为50%,存在的UIWebView的内容下面一大空白区域。

我想我的web视图调整到通过运行以下JS贴合实际的内容大小的高度,但它总是返回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的网页视图:

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

该错误消失,但我不知道为什么.....要继续 – Imotep

+0

您是否得到任何解决方案? ?我面临着同样的问题@Imotep –

+0

从我记得我没有,并没有别的选择,只留下内容下面的空白空间。但是从现在开始已经超过3年了,我可能会错,而且我不能再访问源代码来确认。 – Imotep

回答

0

你尝试改变的UIWebView scrollerView contentsize而不是改变车身尺寸?

是这样

t_webview.scrollView.contentSize=CGSizeMake(width, height); 
+0

我不是想改变身体尺寸,而是在改变字体大小后尝试改变它。 – Imotep

+0

你能发布你在webview上加载的代码吗? – jcesarmobile

+0

加入后的第一个 – Imotep

0

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

这就是说,我会尝试在设置webview内的内容之前调整字体大小,或者我会渲染webview作为如何做,然后当webview得到正确创建,然后获取它的实例调整高度。

还有另一个问题,如果你想保持UIWebView的大小相同,同时改变内容的大小? (如果是这样,请使用@jcesar的答案)。但是,如果您正在寻找更改UIWebView的大小,那么您将需要更改webview大小

+0

的风格(所以字体大小)取决于什么加载到web视图的,我不知道怎样才能加载内容之前改变风格。 我知道如何改变web视图以适应内容高度的高度,但我需要的内容高度......这是我的问题 – Imotep

+0

好了,那么你将有可能要加载内容的'ViewDidLoad'和使用'ViewDidAppear'来改变大小。这将是我开始尝试的一种方法。 – Steven

相关问题