我使用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个点,其余内容正在被切断。
有什么想法吗?谢谢!
答案 0 :(得分:2)
问题是自动布局负责Web视图的框架和滚动视图的内容大小。你可以设置它们,当然如果你读它们,你会读到你刚刚设置的内容;但是你只是误导了自己,因为那时(在你的方法之外)自动布局出现并将它们设置为真实的,你所看到的(与你无意义的NSLog读数相对)是自动布局设置的结果。您需要正确配置约束,以便自动布局执行您希望它执行的操作。
.xib文件中未启用自动布局,因此您没有遇到此行为。但它在你的故事板中打开了。