Ios 为什么我的UIWebView框架没有正确调整大小?
我用XIB做了完全相同的事情,它工作正常,但我的故事板版本有问题 这是我的UIWebView委托代码Ios 为什么我的UIWebView框架没有正确调整大小?,ios,xcode,ios7,uiwebview,xcode6,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;
#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显示了大约800点的webview框架高度。Scrollview内容大小完美,大约1000点
我的Scrollview设置为红色背景。所以你可以在这里看到webview框架在屏幕上只有大约500个点,其余的内容都被切断了
有什么想法吗?谢谢
问题在于,自动布局负责web视图的框架和滚动视图的内容大小。你可以设置它们,当然,如果你阅读它们,你就可以阅读你刚刚设置的内容;但你只是在误导自己,因为(在你的方法之外)自动布局出现并将它们设置为真实的,而你看到的(与无意义的NSLog读数相反)是自动布局设置的结果。您需要正确配置约束,以便“自动布局”能够完成您希望它完成的任务
.xib文件中未启用自动布局,因此您没有遇到此行为。但它已在您的故事板中打开。非常感谢您的解释。但您知道在处理UIWebView的可变内容大小时如何正确设置约束吗?这不需要在delegate didfinishload中确定吗?我不清楚您想做什么。web视图有一个内部滚动视图,它将设置滚动视图的内容大小,以便用户可以查看整个网页。你什么都不用做。现在,您还获得了另一个滚动视图;我不知道为什么(滚动视图内的网页视图内的滚动视图??)。无论如何,您可以设置外部滚动视图的
contentSize
,但必须在其内部约束的情况下进行设置,或者必须关闭滚动视图内部的自动布局,正如我在这里解释的那样:我有一个带有webview的scollview,其中有其他视图,我想一起滚动。我已经禁用了作为webview一部分的scrollview。我会读你的链接!嘿,Matt,我如何向固定到scrollview superview的contentsize的UIWebView添加高度约束?有关我如何解决此问题的详细信息,请参见: