2

我将 UIwebview 设置为UITableview. UIWebview高度和宽度是动态的。它用于本地 html 文件。

UIWebviewUITableview在一卷之下。

它适用于 iphone。我为 ipad 编写的相同方法效果很好。但存在一个问题。在 ipad 标题视图和表格视图中对齐不正确。

这是代码。

Rootview控制器是UITableviewControllor

根视图控制器.m

 - (void)viewDidLoad {
[super viewDidLoad];
self.title = @"Webview in UITableView";
webview = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 10)]; // Don't use CGRectZero here, won't work
webview.delegate = self;
webview.hidden = YES;

[webview loadRequest:[[NSURLRequest alloc] 
                      initWithURL: [NSURL URLWithString:@"http://www.google.com/"]]];

[self.tableView setTableHeaderView:webview]; // Leave this, else you'll have rows to fill the rest of the screen

}

- (void) webViewDidFinishLoad:(UIWebView *)webView {
float newSize = [[webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.scrollHeight"] floatValue];
NSLog(@"Resizing webview from %.2f to %.2f", webView.frame.size.height, newSize);
webView.frame = CGRectMake(webView.frame.origin.x, webView.frame.origin.y, webView.frame.size.width, newSize);
webView.hidden = NO;

// We need to reset this, else the new frame is not used.
[self.tableView setTableHeaderView:webview];

}

对于相同的代码 iphone 输出

在此处输入图像描述

和 iPad 输出UITableview开始滑块提前UIWebview.

在此处输入图像描述

我尝试设置标题框架,但它不起作用,它让 webview 和 table view 都有它自己的不需要的滚动视图。

什么是解决方案?

谢谢你。

4

2 回答 2

1

它是一个分组表视图,这就是为什么它的对齐不正确,因为分组表视图总是从 x-origin 和 y-origin 获取一些默认大小......您可以使用普通表或设置分组表的 x 或增加 web 的 x-origin看法..

于 2012-07-03T13:13:17.420 回答
0

你有没有在你的“ webviewdidfinishedload”委托注释中尝试过这个,“”MyWebView"是触发委托的 webview 也是“ webViewHeight”是 int 值,在它之后你应该添加你的自定义控件并将它声明为公共这是从我的工作代码中获取的。 uitableview 在 webview 之后添加评论。

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    CGSize size = [MyWebView sizeThatFits: CGSizeMake(1.0f, 1.0f)]; // Pass any size here
    CGRect frame = MyWebView.frame;
    frame.size.height = size.height;
    MyWebView.frame = frame;
    webViewHeight = size.height + 200;
}
于 2012-07-03T13:14:36.487 回答