2

のヘッダーとして UIwebview を設定しましたUITableviewUIWebview高さと幅は動的です。ローカルの 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 ビューとテーブル ビューの両方に独自のスクロール ビューがあり、必要ありません。

それに対する解決策は何ですか?

ありがとうございました。

4

2 に答える 2

1

グループ化されたテーブル ビューであるため、配置が適切ではないため、グループ化されたテーブル ビューは常に x-origin と y-origin からデフォルトのサイズを取得します...プレーン テーブルを使用するか、グループ化されたテーブルの x を設定するか、web の x-origin を増やすことができます見る..

于 2012-07-03T13:13:17.420 に答える
0

webviewdidfinishedload" " デリゲートでこれを試しましたか? "MyWebView"はデリゲートを起動する webview であり、" webViewHeight" は int 値であり、その後カスタム コントロールを追加する必要があり、パブリックとして宣言されていることに注意してください。これは私の作業コードからのスナップです..コメントを追加するには、webview の後に uitableview を実行します。

- (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 に答える