iPhone Programming: Applicazione Alpha al genitore, ma non Visualizzazioni Child
Domanda
E 'possibile impostare Alfa a .75 o .50 (trasparente) per vista primaria ma il bambino vista / controlli sono opache (canale alfa 1,0 - completamente visibile).
Ogni volta che ho impostato Alpha della mia UIView principale a trasparente, tutti i punti di vista del bambino / controlli sono indicate anche come trasparente. C'è qualche soluzione?
Soluzione
Il genitore che si comporta come il vostro sfondo deve essere cambiato in un fratello prima che il contenitore che avvolge i vostri bambini. In questo modo è possibile impostare la trasparenza senza compromettere l'intera gerarchia.
Questo sarebbe simile a questa.
-
<item-container>
-
<item-background>
-
<children-container>
-
<children/>
-
-
Questa gerarchia, avrebbe lo stesso ordine visibilità e consentono di impostare l'opacità indipendentemente dal contenuto del contenitore dei bambini.
Altri suggerimenti
Un modo più semplice è possibile anche senza fare le viste fratelli. Non impostare l'alfa direttamente sulla vista padre. Invece usare
[parentView setBackgroundColor:[[UIColor clearColor] colorWithAlphaComponent:0.5]];
Ora qualsiasi vista bambino può avere un proprio colore e non sarà trasparente.
In Swift, questo sarebbe
parentView.backgroundColor = UIColor.clearColor().colorWithAlphaComponent(0.7)
So che questa è una risposta in ritardo, e qualcosa è già stato accettato, ma ho trovato la soluzione migliore per me è non impostare direttamente la trasparenza del UIView
, ma invece impostare il suo colore di sfondo a 0,0,0,0, rendendo il colore completamente trasparente.
Non al 100% sicuro di quello che si sta cercando di fare, ma se si desidera avere una vista contenitore con uno sfondo trasparente è possibile farlo impostando la proprietà backgroundColor per [UIColor clearColor]. In questo modo si può vedere attraverso il fondo, ma tutti i subviews rimarrà opaco. Se vuoi lo sfondo di essere semi-trasparente basta usare [UIColor colorWithRed: verde: blu: alpha:].
Se si desidera che l'intera vista di essere semi-trasparente, mentre altre viste non sono dovrete farli fratelli.