我絕對無法調整我的UIWebView
。iOS:調整UIFView後didFinishLoad(內容應適合不滾動)
我的UIWebView
在.h中聲明並在IB中連接。 IB中的高度爲110,但我的文本高度大約爲1500.現在我想改變高度,以便全文可讀而不需要滾動。
什麼是代碼調整我的UIWebView
在webViewDidFinishLoad
?找不到任何有效的工具。
我絕對無法調整我的UIWebView
。iOS:調整UIFView後didFinishLoad(內容應適合不滾動)
我的UIWebView
在.h中聲明並在IB中連接。 IB中的高度爲110,但我的文本高度大約爲1500.現在我想改變高度,以便全文可讀而不需要滾動。
什麼是代碼調整我的UIWebView
在webViewDidFinishLoad
?找不到任何有效的工具。
的UIScrollView
屬性可以用來UIWebView
在IOS 5開始,您可以使用在您的代理執行webViewDidFinishLoad:
消息,這樣的調整您的觀點:
-(void)webViewDidFinishLoad:(UIWebView *)webView {
CGRect newBounds = webView.bounds;
newBounds.size.height = webView.scrollView.contentSize.height;
webView.bounds = newBounds;
}
有這種情況不會奏效。當UIWebview最初高於新內容大小時,它將返回以前的高度: 例如,您創建一個高度爲100px的webview,然後僅加載一行應使用例如15px的文本的html,webViewDidFinishLoad上的內容大小將爲100px而不是15px。但是,如果您的webview的高度最初爲1px,則在webViewDidFinishLoad上,內容大小將返回15px。所以爲了防止這種情況發生,請讓您的webview始終小於預期的高度。 – pablobart
@pablobart我有場景,其中scrollview高度會更改後選項更改/方向更改。對此的任何修復? – neobie
你試過了嗎:this answer?
[編輯]
有的人說這是工作:
- (void)webViewDidFinishLoad:(UIWebView *)webView {
// Change the height dynamically of the UIWebView to match the html content
CGRect webViewFrame = webView.frame;
webViewFrame.size.height = 1;
webView.frame = webViewFrame;
CGSize fittingSize = [webView sizeThatFits:CGSizeZero];
webViewFrame.size = fittingSize;
// webViewFrame.size.width = 276; Making sure that the webView doesn't get wider than 276 px
webView.frame = webViewFrame;
float webViewHeight = webView.frame.size.height;
}
這是未經測試通過我,但70人投^這個答案和建議設置sizeTahtFits:CGSizeZero
喜歡你的幀的復位.size
有的人用JavaScript來解決這個問題:
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSString *string = [_webView stringByEvaluatingJavaScriptFromString:@"document.getElementById(\"body\").offsetHeight;"];
CGFloat height = [string floatValue] + 8;
CGRect frame = [_webView frame];
frame.size.height = height;
[_webView setFrame:frame];
if ([[self delegate] respondsToSelector:@selector(webViewController:webViewDidResize:)])
{
[[self delegate] webViewController:self webViewDidResize:frame.size];
}
}
的回答約翰和Eric以上,這一塊的代碼工程。
-(void)webViewDidFinishLoad:(UIWebView *)webView {
CGRect newBounds = webView.bounds;
newBounds.size.height = webView.scrollView.contentSize.height;
webView.bounds = newBounds;
}
但同時這段代碼嘗試,我發現它返回我一個合適的WebView但出身不當, 如果多數民衆贊成對任何人的情況下,僅僅用這個代碼
webView.frame=CGRectMake(webView.frame.origin.x, webView.center.y, webView.frame.size.width, webView.frame.size.height);
y軸重置軸被設置,你可以得到你想要的webView。
'-sizeToFit'?否則訪問'webView.scrollView.contentSize' –
沒有爲我工作。你有一些代碼嗎? – filou
我有同樣的問題。我得到它的唯一方法是將webview以編程方式添加到視圖中,然後修改它的框架。看來你不能修改它的框架,這只是如果它是通過IB –