以编程方式在UIView中的UIWebView

时间:2011-05-20 16:40:05

标签: iphone uiview uiwebview

我有一个UITableView,我想添加一个UIView作为页脚。此UIView有一个UIWebView和一个UIButton。我有以下代码:

- (void)viewWillAppear:(BOOL)animated {
CGRect frame = CGRectMake(10, 0, 280, 400);
self.webViewContent = [[UIWebView alloc] initWithFrame:frame];
self.webViewContent.delegate = self;
self.webViewContent.hidden = YES;
}

- (void)webViewDidFinishLoad:(UIWebView *)webView {
UIView *viewA = [[UIView alloc] initWithFrame:CGRectMake(webView.bounds.origin.x, webView.bounds.origin.y, webView.bounds.size.width+20, webView.bounds.size.height + firstFrameY)];
viewA.backgroundColor = [UIColor yellowColor];
[viewA addSubview:self.webViewContent];
[viewA addSubview:linkButton];

[self.emailDetailsTableView setTableFooterView:viewA];
}

输出是我可以看到除UIWebView之外的所有内容。 但是,如果我测试以下代码

- (void)webViewDidFinishLoad:(UIWebView *)webView {
UIView *viewA = [[UIView alloc] initWithFrame:CGRectMake(webView.bounds.origin.x, webView.bounds.origin.y, webView.bounds.size.width+20, webView.bounds.size.height + firstFrameY)];
viewA.backgroundColor = [UIColor yellowColor];
//[viewA addSubview:self.webViewContent];
[viewA addSubview:linkButton];

[self.emailDetailsTableView setTableFooterView:self.webViewContent];
}

我可以看到UIWebView。请注意,我评论了我将UIWebView添加到UIView的行。如果我取消注释该行,我看不到UIWebView !!!

关于我做错的任何想法?

感谢。

1 个答案:

答案 0 :(得分:1)

您的UIWebView可能已经在屏幕上。实际上,如果未显示webView,则不会呈现其HTML(如在屏幕外渲染中),并且webViewDidFinishLoading从未调用过。

在您的情况下,我会尝试做的是将viewA添加到表格页脚并隐藏按钮,如果您需要在加载webView之后只显示

如果您不希望webView在加载时占用页脚中的大空间,请首先使viewA变小。加载HTML后,更改视图大小(可能根据网页高度,如果适合您的应用)。

只是一个建议......