我有一个UIScrollView,顶部有一些细节,标签等,底部有一个HTML内容的UIWebView。 (我知道我不应该在UIScrollView中放置UIWebView,但我需要所有内容都可以滚动,而不仅仅是webview)。
我的步骤是:
1)我设置UIWebView scrollEnabled=NO
,并计算UIWebView内容大小并更新其框架:(在webViewDidFinishLoad:(UIWebView *)webView
)
CGRect WebViewFrame = webView.frame;
WebViewFrame.size.height = 1;
webView.frame = WebViewFrame;
CGSize fittingSize = [webView sizeThatFits:CGSizeZero];
WebViewFrame.size = fittingSize;
webView.frame = WebViewFrame;
2)我计算了所有UIScrollView的内容并更新了contentSize
:
CGFloat contentHeight = 0;
contentHeight += mainInfoView.frame.size.height;
contentHeight += .......
contentHeight += webView.frame.size.height;
[scrollView setContentSize:CGSizeMake(scrollView.frame.size.width, contentHeight)];
起初看起来效果很好,UIWebView的大小调整到正确,UIScrollView的contentSize似乎按预期扩展。
问题是当我滚动或移动滚动视图时,UIWebView立即返回其原始大小,我认为UIScrollView contentSize也会发生变化。 我不明白为什么。
非常感谢任何帮助!
答案 0 :(得分:6)
您很可能正在使用autolayout
禁用自动布局属性。
发生这种情况的原因:Autolayout将使用当前约束将视图更新为其原始位置。