私のアプリでは、アバウト画面にUIWebViewを使用しています。を使用して背景を透明にしました
webView.opaque = NO;
webView.backgroundColor = [UIColor clearColor];
しかし、何らかの理由で(20分の1)UIWebViewのテキストが表示されなくなることはめったにありません。スクロールバーが正しく、テキストをコピーすることもできるので、まだそこにありますが、表示されません。透明な背景を無効にすると問題ありません。
他の誰かがこの行動を経験しましたか?
更新:透明度を無効にしました。それはそれとは何の関係もありません。つまり、実際にはUIWebViewがあり、テキストが表示されないことがあります。
回避策:回避策を見つけましたが、なぜそれが機能するのかわかりません。私がアプリで行っているのは、初期化中にすべてのUIWebViewをプリロードすることです。これにより、後でこれらのビューを表示したときに、遅延が発生しなくなります。self.view = self.viewを呼び出して、コントローラーにviewDidLoadをトリガーさせます。その後、私のペン先のサブビューであるUIWebViewがロードされ、次を使用してhtmlをプリロードできます。
[_webView loadHTMLString:html baseURL:url];
これは、HTMLをUIWebViewにロードするための元のコードでした。今、私はに切り替えました
[_webView loadRequest:urlRequest];
そしてこれは常に機能します。時々、私が十分に速いとき、それがまだ完全にプリロードされていないときにテキストが表示されるのを見ることができます。loadHTMLを使用すると、テキストもロードされていないように見えますが、ポップインステップは実行されません。
したがって、loadHTMLStringを使用してプリロードすると、テキストがロードされないことがありますが、loadRequestは常に成功します。誰かがこの振る舞いを説明できますか?違いは何なのか気になります。