iOS:在didFinishLoad之后调整UIWebView(内容应该适合而不滚动)

fil*_*lou 5 height xcode uiwebview ios

我绝对无法调整我的大小UIWebView.

UIWebView的声明是在.h和IB中连接的.IB中的高度是110.但是我的文本高度大约是1500.现在我想改变高度,这样全文就可以读取而不需要滚动.

什么代码调整了我UIWebView的内容webViewDidFinishLoad?找不到任何有效的东西.

Joh*_*hen 10

UIScrollView属性可UIWebView在iOS 5中启动.您可以通过webViewDidFinishLoad:在委托中实现消息来使用它来调整视图大小,如下所示:

-(void)webViewDidFinishLoad:(UIWebView *)webView {
    CGRect newBounds = webView.bounds;
    newBounds.size.height = webView.scrollView.contentSize.height;
    webView.bounds = newBounds;
}
Run Code Online (Sandbox Code Playgroud)

  • 有一种情况,这将无法正常工作.当UIWebview最初高于新的内容大小时,它将返回先前的高度:例如.你创建一个高度为100px的webview,然后加载一个只有一行文本的html,例如15px,webViewDidFinishLoad上的内容大小将是100px而不是15px.但是如果你的webview的高度最初是1px,那么在webViewDidFinishLoad上,内容大小将返回15px.因此,为了防止这种情况,请使您的webview始终小于预期的高度. (4认同)