UIScrollView 内的 UIWebView 框架不会拉伸大小以适应所有内容

Posted

技术标签:

【中文标题】UIScrollView 内的 UIWebView 框架不会拉伸大小以适应所有内容【英文标题】:Frame of UIWebView inside UIScrollView does not stretch size to fit all of contents 【发布时间】:2011-09-12 19:55:23 【问题描述】:

在从博客加载 Web 内容的小型应用程序中,如果 UIWebView(它位于可滚动的 UIScrollView 内部)比实际 UIScrollView 的框架长,则不会将所有内容滚动到视图中。这是问题的图片:

http://i.imgur.com/G4G4C.png

加载 UIScrollView 和 UIWebView 的代码(这是 UIViewController 的一部分)

- (id)initWithhtml:(NSString*)html

    self = [super init];
    if (self) 
        CGRect appFrame = [[UIScreen mainScreen] applicationFrame];
        UIScrollView* v = [[UIScrollView alloc] initWithFrame:appFrame];
        self.view = v;

        UIWebView* webView = [[UIWebView alloc] initWithFrame:v.frame];
        webView.userInteractionEnabled = NO;
        webView.backgroundColor = [UIColor whiteColor];
        [self.view addSubview:webView];

        [webView loadHTMLString:html baseURL:nil];
        CGSize sz = v.bounds.size;
        sz.height = webView.bounds.size.height + 20;
        v.contentSize = sz;        

        [v release];
        [webView release];
    
    return self;

【问题讨论】:

【参考方案1】:

来自 Apple 的文档:

重要提示:您不应在 UIScrollView 对象中嵌入 UIWebView 或 UITableView 对象。如果这样做,可能会导致意外行为,因为这两个对象的触摸事件可能会混淆和错误处理。

可能是当您滚动时,事件变得混乱。这可能是它阻止您将其余内容滚动到视图中的原因。

【讨论】:

谢谢,还在学习基础知识。你摇滚。该视图现在按预期工作。

以上是关于UIScrollView 内的 UIWebView 框架不会拉伸大小以适应所有内容的主要内容,如果未能解决你的问题,请参考以下文章

UIWebView 在 UIScrollView 内消耗触摸事件

UIScrollView 中的 UIImageView 和 UIWebView

UIWebView 上的 UIScrollView 和 UITapGestureRecognizer 冲突

UIWebview 和 UIScrollview

UIScrollview 高度变化基于 Uiwebview 内容

嵌入在 UIScrollview 中的 UIWebview 中的 Javascript 触摸事件