iPad上で4本指のタスクスイッチジェスチャーを使用して離れたところから戻ったときに、アプリがクラッシュしています。ユーザーが自分のアプリから離れて切り替えるように4本指のジェスチャーをしios 11のタスクを切り替える際の偽の回転イベント
、私は、その後、私のトップレベルのビューコントローラがでviewWillTransitionToSize:withTransitionCoordinator:
を取得します(私たちは縦向きに、現在していると仮定して)私のアプリデリゲートに続いapplicationDidEnterBackground:
applicationWillResignActive:
見ます横向きのレイアウトを示すサイズ(デバイスが回転していなくても)。これは、もちろん、新しいオリエンテーションのために多くのサイズ変更と再配置をもたらします。その直後、私はviewWillTransitionToSize:withTransitionCoordinator:
のサイズ(ポートレートを示すサイズ)を取得します(デバイスの元の向き)。そしてまた、新しい(実際にはオリジナルの)オリエンテーションのために、私はすべてのレイアウトをもう一度見直します。
私が見ていることは、このすべてが完了するのを待っていると、1日中いつでもアプリ内外に切り替えることができるということです。一方、この不必要な作業が進行している間に私のアプリケーションに切り替えると、いくつかのiOS移行コードで深刻なクラッシュが発生します。
この時点で、なぜこのような迷惑な回転イベントが発生するのかを理解しようとしています。私がそれらを得ることを避けることができれば、私はクラッシュを引き起こしているどんな状況にも入ることを避けることができます。彼らは必要ないと思われる。
これを指摘してくれてありがとう。最初は私はそれを再現できないと思っていましたが、私はそれを再現できるだけでなく、実際にApp Storeの私のアプリはそれのためにクラッシュレポートでいっぱいでした! – matt
私は、アプリがマルチタスキング状況にあるときにユーザーがホームボタンをクリックすると、これが起こる別の状況を発見しました。アプリがバックグラウンド状態にある間、もう一度、2つの 'viewWillTransitionToSize'が素早く連続しています。 – matt
私はこれがこれをやっている理由は、実行中のアプリケーションのリストにサムネイルを表示できるように、アプリケーションを横長と縦長の両方でスナップショットできることだと考えています。バックグラウンドで発生する向きの変更を回避するためのコードを用意して、アプリを横向きに終了し、縦向きに回転して、ホームをダブルクリックして実行中のアプリを表示します。あなたのスクリーンショットは間違っているでしょう。私は本当にこれを修正すると思いますが、アニメーションの重複に関連したiOSのバグを引き起こす回転/レイアウトコードで何が起きているのか把握する必要があります。その間、アプリがアクティブになるまでレイアウトを遅らせています。 – Craig