2015-07-23 19 views
7

Sto cercando di coprire la barra di stato con il mio punto di vista e per farlo ho calculcate cornice per mio punto di vista facendo qualcosa di simile (anche dopo la rotazione):iOS9 copre barra di stato con UIWindow personalizzata - posizione errata

UIScreen *screen = [UIScreen mainScreen]; 
CGRect statusBarFrame = [UIApplication sharedApplication].statusBarFrame; 

Per iOS 8 + (perché da iOS 8 UIScreen è orientantion-dipendente):

CGRect frame = [screen.coordinateSpace convertRect:statusBarFrame toCoordinateSpace:screen.fixedCoordinateSpace]; 
[self setFrame:frame]; 

Per iOS7:

[self setFrame:statusBarFrame]; 

Funziona bene per iOS8 e versioni precedenti ma quando si crea la mia app con Xcode 7 beta 4 e iOS 9 SDK qualcosa non va quando si avvia l'app in orizzontale o in negativo (funziona perfettamente se l'app inizia in verticale) ...

ie. quando avvio l'app mentre Upsidedown la finestra utente personalizzata che dovrebbe coprire la barra di stato finirà sempre nella parte inferiore dello schermo, qualsiasi idea di cosa potrebbe essere sbagliato?

+0

Hai capito? – rushelmet

+0

rushelmet, non ancora :( – Artrmz

+0

Controlla l'ultima risposta: http://stackoverflow.com/questions/33244580/view-above-the-status-bar/33244933#33244933 – rushelmet

risposta

0

Senza ulteriori informazioni, la migliore soluzione sarebbe semplicemente nascondere la barra di stato. Se si vuole ancora la "barra di stato" per scopi di animazione o qualche altra ragione, la soluzione tipica in questo scenario è quello di simulare chiamando

- (UIView *)snapshotViewAfterScreenUpdates:(BOOL)afterUpdates su UIScreen

e utilizzare la vista restituito come sfondo per qualsiasi vista/finestra che stai presentando. A partire da iOS 9, non esiste un metodo pubblico che ti permetta di ottenere il comportamento specifico che hai specificato.

Problemi correlati