7

私はこれが何度も尋ねられたことを知っていますが、私はそれを働かせることができません. 要するに、私の UIWebview は、高さが固定されていない (幅は常に同じ) HTML を取り込みます。それに応じて高さを変更したいだけです。

私はオンラインで見つけた多くの修正を試みましたが、私の問題は、webview が正しいサイズに変更されますが、ほんの一瞬だけで、その後フリックで元のサイズに戻ることです。

私のこのビューは、セグエによって呼び出されることを指摘しておく必要があります。それが、私が異なると考えることができる唯一のことです! コードが機能するかどうか疑問に思っていますが、セグエが終了すると、クロスフェード、フリップ、またはそれが何であれ、webview を再描画します。

これが私の現在のコードです(私が言っているように、Javaバージョンを含む多くの修正を試みましたが、そのほとんどは同じです)、scalesPageToFitとsrollEnabledに加えて、ストーリーボードのいくつかの目盛りも試しました.

-(void)webViewDidFinishLoad:(UIWebView *)webView
{
    NSLog(@"Starting Size : %f", headerWebView.frame.size.height);

    headerWebView.scalesPageToFit = YES;
    headerWebView.scrollView.scrollEnabled = NO;
    CGRect frame = headerWebView.frame;

    frame.size.width = frame.size.width; // I used this to test, I put 200 in and it changes then flicks back too
    frame.size.height = 1;

    headerWebView.frame = frame;
    frame.size.height = headerWebView.scrollView.contentSize.height;
    headerWebView.frame = frame;

    NSLog(@"Finished Size : %f", headerWebView.frame.size.height);
}

ログには次のように書かれています。

開始サイズ : 176.000000 終了サイズ : 246.000000

私が気づいてから「縮小」するのに十分なだけ長い間、Webviewが正常に表示される理由について誰かが考えましたか?

4

1 に答える 1

3

私が気づいてから「縮小」するのに十分なだけ長い間、Webviewが正常に表示される理由について誰かが考えましたか?

変化が起こっているときに変化を示しているので、問題ないように見えます。ビューのライフサイクルの早い段階で、または webViewDidFinishLoading でさえ、Web ビューを非表示にしないのはなぜですか? さらに支援が必要な場合に備えて、IB から私のレイアウト設定を共有しています。これが役立つかどうか、または追加情報が必要かどうかをお知らせください。自動レイアウトではなく、スプリングとストラットを使用しています。これらの方法を試して、あなたに適しているかどうかを確認します.

Web ビューのデータ ロードを非表示にすると、すべての設定/データが配置されるまで、ユーザーは何も見ることができなくなります。

    NSString *path = [[NSBundle mainBundle] bundlePath];
    NSURL *baseURL = [NSURL fileURLWithPath:path];

    [webView setAlpha:0];
    [webView loadData:[dataString dataUsingEncoding:NSUTF8StringEncoding] MIMEType:@"text/html" textEncodingName:@"UTF-8"  baseURL:baseURL];

    [UIView animateWithDuration:0.1 animations:^{

        [webView setAlpha:1.0];

    } completion:nil];

Web ビューのスプリングとストラット Web ビュー設定

于 2013-10-02T03:15:56.033 に答える