のヘッダーとして UIwebview を設定しましたUITableview
。UIWebview
高さと幅は動的です。ローカルの html ファイル用です。
UIWebview
そしてUITableview
、1つのスクロールの下にあります。
iPhoneでも問題なく動作します。iPad用に書いた方法と同じですが、問題が1つあります。iPad のヘッダー ビューとテーブル ビューの配置が適切ではありません。
ここにコードがあります。
ルートビューコントローラーはUITableviewControllor
Rootviewcontroller.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.
ヘッダーのフレームを設定しようとしましたが、機能しません。Web ビューとテーブル ビューの両方に独自のスクロール ビューがあり、必要ありません。
それに対する解決策は何ですか?
ありがとうございました。