/ / UIWindow mit Alarmstufe befindet sich über der Statusleistenebene - ios, cocoa-touch, uiwindow

UIWindow mit Alert-Ebene befindet sich über der Statusleiste - ios, cocoa-touch, uiwindow

Ich habe eine App, die modal View präsentiertController, ich habe einen Standard-ViewController und einen UIAlertController in verschiedenen UIWindows, das Hauptfenster mit normaler UIWindowLevel-Priorität und das Warnfenster mit Alert UIWindowLevel-Priorität, da ich die Warnung immer über dem ViewController haben möchte, den ich modal auf dem Haupt-UIWindow präsentiere ( AppDelegates-Referenz). Ich habe auch ein anderes UIWindow mit Statusleistenpriorität, für Momente, in denen ich sicher ein anderes haben möchte ViewController über allem. Wenn ich also das UIWindow mit einer Alert UIWIndowLevel-Priorität präsentiere und nachdem ich ein anderes Fenster mit der Statusleiste UIWIndowLevel präsentiere, wird die Warnung im Alert-Fenster über dem Statusleistenfenster angezeigt. Gibt es einen Grund dafür?

Ein Beispiel-App-Screenshot, den ich zum Testen erstellt habe

Antworten:

0 für die Antwort № 1

Also habe ich mir einige der vielen geöffneten SOs angesehen und diese Antwort gesehen: https://stackoverflow.com/a/24262942/6784707

Ich habe die Werte von (UIWindowLevelNormal, UIWindowLevelAlert, UIWindowLevelStatusBar) (0.0, 2000.0, 1000.0) gedruckt. In den Dokumentationen von Apple heißt es jedoch:

Lassen UIWindowLevelNormal: UIWindowLevel

Die Standardstufe. Verwenden Sie diese Ebene für den Großteil Ihrer Inhalte, einschließlich für das Hauptfenster Ihrer App.

Lassen UIWindowLevelAlert: UIWindowLevel

Die Ebene für eine Alarmansicht. Fenster auf dieser Ebene werden über Fenstern auf der UIWindowLevelNormal-Ebene angezeigt.

Lassen UIWindowLevelStatusBar: UIWindowLevel

Die Ebene für ein Statusfenster. Windows Auf dieser Ebene werden Fenster in UIWindowLevelAlert angezeigt.

Ich habe einen Fehler in Apples Bug Reporter behoben.

Meine Lösung bestand darin, ein CGFloat mit einem Wert über 2000 zu erstellen und es zu windowLevel hinzuzufügen.