[英]iOS: Resize UIWebView after didFinishLoad (content should fit without scrolling)
我絕對無法調整UIWebView
大小。
我的UIWebView
在.h中聲明並在IB中連接。 IB中的高度是110.但是我的文本高度約為1500.現在我想改變高度,以便在不滾動的情況下讀取全文。
什么代碼在webViewDidFinishLoad
中調整我的UIWebView
的webViewDidFinishLoad
? 找不到任何有效的東西。
從iOS 5開始, UIScrollView
屬性可用於UIWebView
。您可以通過在委托中實現webViewDidFinishLoad:
消息來使用它來調整視圖大小,如下所示:
-(void)webViewDidFinishLoad:(UIWebView *)webView {
CGRect newBounds = webView.bounds;
newBounds.size.height = webView.scrollView.contentSize.height;
webView.bounds = newBounds;
}
你試過了嗎? 這個答案 ?
[編輯]
有些人說這是有效的:
- (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
就像重置你的frame.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];
}
}
正如上面的約翰和埃里克所回答的那樣,這段代碼可行。
-(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。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.