为什么我的UIWebView框架没有正确调整大小?
我用XIB做了这个完全相同的事情,它可以工作,但是我的故事板版本有些问题。为什么我的UIWebView框架没有正确调整大小?
这里是我的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正显示出约800个适当的WebView帧的高度。滚动查看内容大小完美约1000分。
我的滚动查看设置为红色背景。所以你可以在这里看到webview框架在屏幕上只有500点左右,其余的内容正在被切断。
任何想法?谢谢!
的问题是,自动布局负责幅视图的两个帧和滚动视图的内容的大小。你可以设置它们,当然如果你阅读它们,你就可以阅读你刚刚设置的内容;但你只是误导你自己,因为然后(在你的方法之外)自动布局出现,并将它们设置为真实的,你看到(与你无意义的NSLog读数相反)是自动布局设置的结果。您需要正确配置您的约束条件,以便自动布局完成您想要的操作。
自动布局未在.xib文件中打开,因此您没有遇到此问题。但它在故事板中打开。
非常感谢您的解释。但是当你处理我的UIWebView的可变内容大小时,你是否知道如何正确设置我的约束?这不需要在代表didfinishload中确定吗? – sayguh 2014-11-02 02:20:03
我不清楚你想做什么。 Web视图具有内部滚动视图,它将设置滚动视图的内容大小,以便用户可以查看整个网页。你不必做任何事情。现在,您还有_another_滚动视图;我不知道为什么(滚动视图内的web视图内的滚动视图????)。无论如何,你可以设置外层滚动视图的contentSize,但是你必须在内容中使用_constraints_,或者你必须关闭滚动视图内部的自动布局,正如我在这里解释的那样:http:// * .com/a/13548039/341994 – matt 2014-11-02 02:47:18
我有一个scollview,里面有一个webview和其他视图,我想全部滚动到一起。我禁用了作为webview一部分的滚动视图。我会读你的链接! – sayguh 2014-11-02 03:12:31
关于我如何解决这个问题的详细信息可以在这里找到:http://*.com/questions/26699565/autolayout-constraint-that-uses-uiscrollview-contentsize – sayguh 2014-11-04 15:34:45