我有一個視圖控制器包含一些標籤和一個UIWebView加載一些HTML。所有這些標籤和UIWebView都是UIScrollView的子視圖。我禁用了UIWebView的滾動功能,以便標籤和UIWebView在UIScrollView中一起滾動。UIWebView無法完全加載,高度不一
然後,我發現了UiWebView內的大小,根據內容大小更改了UIWebView大小,然後將滾動視圖的大小設置爲webview的大小。這就是我在webViewDidFinishLoad加入以下代碼做到了:
CGRect frame = myWebView.frame;
frame.size.height = 1;
myWebView.frame = frame;
CGSize fittingSize = [myWebView sizeThatFits:CGSizeZero];
frame.size = fittingSize;
myWebView.frame = frame;
NSLog(@"size: %f, %f", fittingSize.width, fittingSize.height);
mainScrollView.contentSize = myWebView.bounds.size;
,因爲我使用的NSLog看到的WebView的內容的大小,我注意到,它給出了相同內容不同的高度。例如,如果我第一次打開視圖控制器,它將顯示等於915.0的高度,並且當我移回導航並回到此視圖控制器時,日誌將顯示大小爲1012.0。
我認爲這可能是由於html內容中加載的圖像造成的。任何人都可以告訴我如何修復它以便第一次顯示正確的高度?謝謝!
UPDATE:如果我使用了不同的策略使用JavaScript,我已經嘗試使用下面的代碼:
CGRect oldBounds = [[self myWebView] bounds];
CGFloat height = [[myWebView stringByEvaluatingJavaScriptFromString:@"document.height"] floatValue];
NSLog(@"NEW HEIGHT %f", height);
[myWebView setBounds:CGRectMake(oldBounds.origin.x, oldBounds.origin.y, oldBounds.size.width, height)];
mainScrollView.contentSize = myWebView.bounds.size;
此代碼給我合適的高度在日誌中,每次這正是我但是整個webview會向上移動一些,阻止它上面的所有標籤。我做錯了什麼,如何解決它?謝謝!
你也記錄滾動視圖嗎?這可能會顯示一個有趣的結果。任何xib警告消息? –
和這個問題可能會有所幫助:http://stackoverflow.com/questions/6440448/ios-uiwebview-inside-a-uiscrollview?rq=1或這:http://stackoverflow.com/questions/8089992/contentchange -when-uiwebview-load-inside-scrollview?rq = 1 –
@DavidDelMonte如果我使用NSString * webHeight = [myWebView stringByEvaluatingJavaScriptFromString:@「document.height;」]; NSLog(@「WebView Height%@」,webHeight);那麼它每次都顯示確切的高度,但在這裏webHeight是一個NSString,我如何設置myWebView的高度爲webHeight的高度? – AJ112