为什么我的UIWebView框架没有正确调整大小?

时间:2014-11-01 16:04:42

标签: ios xcode ios7 uiwebview xcode6

我使用XIB做了同样的事情并且它有效,但我的故事板版本出了问题。

这是我的UIWebView委托代码

#pragma mark - UIWebViewDelegate Protocol Methods
- (void)webViewDidFinishLoad:(UIWebView *)webView {

    CGRect frame = webView.frame;
    frame.size.height = webView.scrollView.contentSize.height;
    _webView.frame = frame;

    NSLog(@"Webview Frame height is %f", _webView.frame.size.height);

    _scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width, _headerImageView.frame.size.height + webView.frame.size.height);

    NSLog(@"scrollview content height is %f", _scrollView.contentSize.height);

}

NSLog显示正确的webview框架高度约800点。 Scrollview内容大小完美约1000分。

我的Scrollview设置为红色背景。所以你可以在这里看到webview框架在屏幕上只有大约500个点,其余内容正在被切断。

有什么想法吗?谢谢!

enter image description here

1 个答案:

答案 0 :(得分:2)

问题是自动布局负责Web视图的框架和滚动视图的内容大小。你可以设置它们,当然如果你读它们,你会读到你刚刚设置的内容;但是你只是误导了自己,因为那时(在你的方法之外)自动布局出现并将它们设置为真实的,你所看到的(与你无意义的NSLog读数相对)是自动布局设置的结果。您需要正确配置约束,以便自动布局执行您希望它执行的操作。

.xib文件中未启用自动布局,因此您没有遇到此行为。但它在你的故事板中打开了。