6

これについていくつか質問があります。これには、html 文字列に埋め込まれたスクリプトに関する解決策があります。私の場合ではありません。

私はios5/6アプリを持っています。initWithNibNameローディングコードを悪い考えに入れようとしましたが、viewDidLoad非推奨なので、viewWillAppear残しました。

- (void) viewWillAppear:(BOOL)animated
{

    NSString* detailHtml = [Storage getDetailHtml: -1];// get the last one
    //NSLog(@"detailHtml: %@", detailHtml);
    if(detailHtml == nil){
        NSLog(@"Can't load the detail");
        detailHtml = @"<html><body>Some text here</body></html>";
    }   
    [webView loadHTMLString:detailHtml baseURL:nil];


    [super viewWillAppear:animated];
}

このコードの問題は点滅です。UIViewContoller が表示され、1 ~ 2 秒後に HTML が表示されるよりも白い webView が表示されます。HTML にはいくつかのテキストがありますが、base64 でエンコードされた画像も含まれています。ここには JavaScript はありません。インライン CSS (外部ファイルなし)、テキスト、および Base 64 でエンコードされた画像のみです。

テキストにプリロードすることもできdetailHtmlますが、表示には時間がかかると思います。

webView が html の読み込みを完了するまで、ViewController を表示しないことは可能ですか? - いくつかのコールバック?

助言がありますか?

4

1 に答える 1

5

HTML文字列のデフォルトを読み込むには少し時間がかかりますが、すべてが正常に機能する場合UIActivityIndicatorは、ユーザーがアプリを使い続けることができるように配置しないでください。空白のままにするよりもはるかに優れています。

これがデリゲートメソッドの1つですUIWebView

- (void)webViewDidFinishLoad:(UIWebView *)webView 
{
//And stop your indicator over here
   [indicator stopAnimating];
}
于 2012-10-08T16:04:25.200 に答える