2009-08-13 19 views
6

Ho una vista un po 'trasparente (alpha = 0.6) che ha alcuni sottoview. Mi piacerebbe che una delle sottoview (una UILabel) fosse disegnata con alpha di 1.0 perché la fusione rende il testo difficile da leggere ma aggiungendolo come sottoview della vista principale ha adottato il valore alfa del suo genitore. C'è un modo per ignorare questo comportamento? Credo che dovrò rimuoverlo dalla sottoview ma volevo chiedere e vedere se forse mi manca qualcosa.Puoi sovrascrivere il valore alfa di un UIView genitore su una delle sue sottoview?

risposta

2

Sei corretto. Dovrai spostare l'UILabel fuori dalla visualizzazione trasparente per farlo rendere non trasparente.

10

Un altro approccio che ha funzionato facilmente è quello di non modificare il canale alfa su UIView. Invece, modifica il livello alfa sull'oggetto backgroundColor di UIView.

Ovviamente ciò dipende dal motivo per cui il livello alfa è stato reso trasparente, ma ha funzionato bene per le mie esigenze.

+0

Grazie! La tua soluzione è molto meglio che dover creare un altro contenitore. –

13

Brian ha ragione. Per esempio:

view.backgroundColor = [UIColor colorWithWhite:0 alpha:0.6]; 

farà uno sfondo nero in alpha 0.6 e altre viste non saranno interessati.

+0

grazie, il suo funzionamento. – ViruMax

Problemi correlati