/ / UIWindow con il livello di avviso è in cima al livello della barra di stato: iOS, Coco-Touch, uwindow

UIWindow con livello di avviso si trova in cima al livello della barra di stato - ios, cacao-touch, uiwindow

Ho un'app che presenta modalmente VisualizzaController, ho un ViewController standard e un UIAlertController in UIWindows differenti, il principale con priorità UIWindowLevel normale e la finestra Alert con priorità Alert UIWindowLevel, perché voglio avere sempre l'avviso in cima a qualunque ViewController che presenti modalmente sull'UIWindow principale ( Riferimento delegati app). Ho anche un'altra UIWindow con priorità della barra di stato, per i momenti in cui voglio sicuramente averne una diversa ViewController in cima a tutto. Quindi, quando presento UIWindow con una priorità di avviso UIWIndowLevel e dopo che presento una finestra diversa con la barra di stato UIWIndowLevel, l'avviso nella finestra di avviso viene visualizzato nella parte superiore della finestra della barra di stato. C'è una ragione per questo?

Uno screenshot di un'app di esempio che ho creato per provare

risposte:

0 per risposta № 1

Quindi, stavo guardando alcune delle tante SO aperte e ho visto questa risposta: https://stackoverflow.com/a/24262942/6784707

Ho stampato i valori di (UIWindowLevelNormal, UIWindowLevelAlert, UIWindowLevelStatusBar) sono (0.0, 2000.0, 1000.0). Ma la documentazione di Apple afferma che:

permettere UIWindowLevelNormal: UIWindowLevel

Il livello predefinito Utilizza questo livello per la maggior parte dei tuoi contenuti, incluso per la finestra principale della tua app.

permettere UIWindowLevelAlert: UIWindowLevel

Il livello per una vista di avviso. Le finestre a questo livello vengono visualizzate sopra le finestre a livello di UIWindowLevelNormal.

permettere UIWindowLevelStatusBar: UIWindowLevel

Il livello per una finestra di stato. finestre a questo livello vengono visualizzati nella parte superiore delle finestre a livello di UIWindowLevelAlert.

Ho inserito un bug nel Bug Reporter di Apple.

La mia soluzione era quella di creare un CGFloat con un valore superiore a 2000 e aggiungerlo a windowLevel.