/ /アラートレベルのUIWindowはステータスバーレベルの上にあります-ios、cocoa-touch、uiwindow

アラートレベルのUIウィンドウはステータスバーレベルの上位にあります - ios、cocoa-touch、uiwindow

モーダルビューを表示するアプリがありますコントローラー、異なるUIWindowsに標準のViewControllerとUIAlertControllerがあります。メインは通常のUIWindowLevel優先度で、アラートウィンドウはアラートUIWindowLevel優先度です。これは、メインUIWindowでモーダルに提示するViewControllerの上に常にアラートを表示したいためです( AppDelegatesリファレンス)。ステータスバーの優先度が設定された別のUIWindowもあります。 すべての上にViewController。 したがって、UIWindowにアラートUIWIndowLevel優先度を表示し、別のウィンドウにステータスバーUIWIndowLevelを表示すると、アラートウィンドウのアラートがステータスバーウィンドウの上に表示されます。その理由はありますか?

テスト用に作成したアプリのスクリーンショットの例

回答:

回答№1は0

それで、私は開かれた多くのSOのいくつかを見て、この答えを見ました: https://stackoverflow.com/a/24262942/6784707

(UIWindowLevelNormal、UIWindowLevelAlert、UIWindowLevelStatusBar)の値を出力しました(0.0、2000.0、1000.0)。しかし、Appleのドキュメントには次のように記載されています。

〜する UIWindowLevelNormal:UIWindowLevel

デフォルトレベル。このレベルは、アプリのメインウィンドウを含む、コンテンツの大部分に使用します。

〜する UIWindowLevelAlert:UIWindowLevel

アラートビューのレベル。このレベルのウィンドウは、UIWindowLevelNormalレベルのウィンドウの上に表示されます。

〜する UIWindowLevelStatusBar:UIWindowLevel

ステータスウィンドウのレベル。ウィンドウズ このレベルでは、UIWindowLevelAlertレベルのウィンドウの上に表示されます.

AppleのBugReporterでバグを埋めました。

私の解決策は、2000を超える値のCGFloatを作成し、それをwindowLevelに追加することでした。