【问题标题】:Resized UIWebView returns to original size when scrolling inside a UIScrollView在 UIScrollView 内滚动时,调整大小的 UIWebView 返回到原始大小
【发布时间】:2014-02-06 18:16:08
【问题描述】:

我有一个 UIScrollView,上面有某些细节、标签等,还有一个 UIWebView,底部有 HTML 内容。 (我知道我不应该将 UIWebView 放在 UIScrollView 中,但我需要所有内容都是可滚动的,而不仅仅是 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 也会发生变化。 我也不知道为什么。

任何帮助将不胜感激!

【问题讨论】:

    标签: ios uiwebview uiscrollview scroll


    【解决方案1】:

    您很可能正在使用autolayout

    禁用自动布局属性。

    发生的原因:自动布局将使用当前约束将视图更新到其原始位置。

    【讨论】:

    • 哇,你完全正确!我不知道 Autolayout 会像这样更新视图位置。非常感谢您的信息和帮助! :)
    • 对您有帮助吗?接受和支持答案会很酷。
    • 完美运行!我是新用户,我还没有足够的声望来投票,对不起。我会尽快做的!
    • 谁能告诉我如何禁用自动布局
    • 禁用autolayout 设置yourOutlet.translatesAutoresizingMaskIntoConstraints = false
    猜你喜欢
    • 2014-09-19
    • 2011-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-20
    • 2016-01-14
    • 1970-01-01
    相关资源
    最近更新 更多