2012-08-28 189 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

相關問題