2010-05-06 10 views
7

Quando si ruota una vista da UIInterfaceOrientationPortrait a UIInterfaceOrientationPortraitUpsideDown sul simulatore iPad, c'è un bordo bianco lungo un lato della vista (vedere diagram, in basso a sinistra dell'immagine). Il bordo bianco mostra solo da un lato, ma non dal lato opposto. Come posso impedirlo (nasconderlo)? Grazie!Bordo bianco fastidioso quando si ruota una vista in iPad

risposta

16

Questa è una supposizione:

E 'possibile che uno dei vostri punti di vista ha un backgroundColor insieme al bianco, ed è completamente coperto da un altro punto di vista. Durante una rotazione, forse gli errori in virgola mobile fanno sì che un bordo si mostri leggermente attraverso quel bordo.

Per indagare su questo caso, è possibile utilizzare il metodo non documentato [UIView recursiveDescription] per visualizzare rapidamente la gerarchia della vista (non è necessario inviare codice con tale metodo, è solo per il debug). Una volta che sai quali visualizzazioni sono vicine al fondo, puoi stampare i loro backgroundColors o semplicemente impostarli tutti su [UIColor clearColor].

Inoltre, immagino che tu lo sappia già, ma può essere utile impostare window.backgroundColor = [UIColor clearColor] sul inizio del tuo codice!

+1

Grazie Tyler! window.backgroundColor = [UIColor clearColor]; lavori!! – ohho

+0

Grazie! Funziona perfettamente! – nonamelive

+1

+1 window.backgroundColor = [UIColor clearColor]; funziona anche per me :) – matm

0

Ho avuto lo stesso problema. Ho visto che in Auto Builder di Interface non è possibile abilitare la visualizzazione per la vista. Ho cancellato il file .xib e l'ho ricreato assicurandomi che il prodotto fosse impostato su "ipad" durante la creazione del file (aggiungi un nuovo file in xcode).

0

È anche possibile impostare il colore di sfondo su zero. Dalla documentazione di UIView per backgroundColor:

Il valore predefinito è nullo, che risulta in uno sfondo trasparente a colori.

UIWindow eredita da UIView, quindi funziona anche così. Probabilmente è una buona idea usare nil, nel caso in cui [UIColor clearColor] non sia sempre il modo migliore per farlo.

La cosa divertente è che ho un progetto senza punti, quindi ho creato l'UIWindow nel codice, ma il colore di sfondo era bianco prima di impostarlo su zero. è il colore di sfondo predefinito di un UIWindow bianco creato a livello di codice?

Problemi correlati