2017-09-30 8 views
0

私はUIScrollViewを含むUIViewControllerを持っています。このUIViewControllerには、すべてのコンテンツを表示用に作成します。コンテンツは動的で、データベースに格納されたデータに依存するため、私はこれを行います。ios swiftアプリの向きが非常に遅く変更されました。 iOSデバイスの向きが変わるとどうなりますか?

iPhoneまたはシミュレータで向きを変更すると、変更に時間がかかります(ディスプレイのデータによっては最大40秒までかかることがあります)。

私はちょうど同じコントローラを起動すると、それはユーザーが考えているようにオーバーレイと進行状況インジケータがあります。

なぜオリエンテーションが長くかかるのですか?オリエンテーションの変更が実際に起こるのは何ですか?

答えて

0

データベースからデータを同期または非同期でどのようにロードしますか?あなたはあなたのアプリからのより良い応答をしたい場合は、非同期にロードする必要があります。

また、データベースがメインスレッドから同期してアクセスされる場合、 'viewDidLoad'、 'viewDidLayoutSubviews'などのどこかにデータをロードするコードがありますか?私は、デバイスの向きが変わったときにそのローディングコードが複数回実行されると思われます。そのため、そこにブレークポイントを置いて正確に何が起こるか見ることができます...

+0

UIは非同期で生成/更新され、構築中の進捗インジケータ。データベースへのアクセスは非常に高速です。その変換はビューへの変換に時間がかかります。私はviewDidLayoutSubviews()からビューを構築し、不必要に実行されません。私はログメッセージを作成し、オリエンテーションの変更中にそのコードへの呼び出しがないので、iOSのレイアウトに問題があります。 – zkon

関連する問題