私は起動画面を表示するLaunchImageアセットを持っています。私の問題は、起動イメージが消えてから、最初のビューコントローラのwebview
がコンテンツを読み込み始めます。ウェブビューの読み込みが終了するまで、起動イメージを表示するにはどうすればよいですか?
ウェブビューの読み込みが終了するまで、起動イメージを表示するにはどうすればよいですか?
マイ設定:
私は起動画面を表示するLaunchImageアセットを持っています。私の問題は、起動イメージが消えてから、最初のビューコントローラのwebview
がコンテンツを読み込み始めます。ウェブビューの読み込みが終了するまで、起動イメージを表示するにはどうすればよいですか?
ウェブビューの読み込みが終了するまで、起動イメージを表示するにはどうすればよいですか?
マイ設定:
あなたは起動画面タイマまたは "それが表示されるはずですどのくらい" に関連する何かを変更することはできません。それはあなたのコントロールではありません。
1:あなたのUIWebView
webViewDidFinishLoad(_:)
2にデリゲートメソッドを追加します。UIImageView
またはカスタムUIView
としてあなたの「起動画面」のコピーを表示します。デリゲートメソッドが終了したときに起動したときにはhide
になります。 iOSの8で実行され、後に、代わりのUIWebViewを使用してのWKWebViewクラス を使用するアプリで
注意。さらに、 WKPreferencesプロパティjavaScriptEnabledを、JavaScriptを実行しないと思われるファイル をレンダリングする場合は、falseに設定することを検討してください。
WKWebView
デリゲートのために
:
ありがとうございます。しかし私はあなたの方法でもう一つの質問があります:私の起動イメージリソースを、異なる画面サイズに適合する適切なイメージリソースに変換する方法はありますか?イメージビューで起動イメージリソースを表示することは可能ですか? – Sayakiss
@SayakissカスタムUIViewを作成し、起動画面と同じイメージを追加し、ビューがロード中であることを示すUIActivityIndicatorを追加した方が良いでしょう。そうしないと、ユーザーがクラッシュしたり、つかれていると思うかもしれません。 –
「あなたのlaunchscreenと同じイメージを追加する」:イメージリソースには3つのイメージ(1x、2x、3x)しかありませんが、起動イメージリソースには10以上のイメージがあります。別の画面サイズのために? – Sayakiss
あなたは打ち上げappearence時間についての制御を持っていません。しかし、あなたが同じ起動イメージで画面をカバーする独自のUIImageView
を作成し、UIWebView
はあなたがUIWebView
のデリゲートメソッド試してみてください
ありがとうございます。しかし私はあなたの方法でもう一つの質問があります:私の起動イメージリソースを、異なる画面サイズに適合する適切なイメージリソースに変換する方法はありますか?イメージビューで起動イメージリソースを表示することは可能ですか? – Sayakiss
イメージファイルまたはxibの場合は、起動画面で使用されているとおりに正確に使用できます。起動画面は、イメージを表示するビューです。同じように模倣します。あなたが手動で行う場合は、起動イメージがそれらのすべてに合っている場合、画面サイズに関しては適合するでしょう。 – giorashc
'画像ファイルかxibの場合:' LaunchImage'リソースです(私の質問で画像を見てください) – Sayakiss
をロードし終わったら、それを削除することができます: -
- (void)webViewDidStartLoad:(UIWebView *)webView
- (void)webViewDidFinishLoad:(UIWebView *)webView
とUIImageView(含まれているを使用しますあなたの起動イメージ)、あなたのUIWebViewが完全にロードされるまでそれを表示し続ける。
起動画面に別のUIImageViewを「類似」したくない場合は、表示コントローラーを起動画面と同じようにインスタンス化して使用することができます。
let sb = UIStoryboard(name: "Launch Screen", bundle: nil) // the storyboard of your launch screen
let vc = sb.instantiateViewController(withIdentifier: "launchScreen") // the storyboard id (remember to set it first!)
// present the vc
navigationController?.present(vc, animated: false, completion: nil)
// when you're done loading
vc.dismiss(animated: false, completion: nil)
しかし、あなたは今、アプリが実際に何かをやっているユーザーをさせなければならないので、これは、非常に良い習慣ではないことに注意してください。何らかのローディングスピナーなどを表示することを検討してください。
http://stackoverflow.com/questions/5618163/displaying-splash-screen-for-longer-than-default-secondsこれをチェックしてください。 –