2012-06-05 8 views

risposta

41

Questa operazione cambia solo l'alfa della vista radice, non gli altri

self.view.backgroundColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.5]; 
+0

thats awesomw tizio .. –

+0

in effetti è fantastico. questo dovrebbe essere nella parte superiore della ricerca di google. seriamente – Katushai

+0

grazie uomo, fantastico! –

2

avresti bisogno di cambiare la struttura dei vostri punti di vista. Invece di posizionare le proprie visualizzazioni secondarie nella vista radice, creare un layer ontop della vista radice, ma aggiungere ancora le sottoview alla radice. Quando si modifica l'alfa del livello, questo non influirà sulle sottoview. Esempio di struttura di seguito.

Il tuo attuale struttura:

RootView->Subviews //Changing RootView alpha effects Subviews. 

struttura necessaria:

RootView->View->Subviews(Still Added to RootView) //Changing alpha of Layer doesn't effect subviews. 

Spero che questo aiuti.

+0

buono ma esattamente non adatto al mio problema. Ho una vista di root. Voglio aggiungere una vista come visualizzazione di avviso alla vista root. E quando ho aggiunto la vista secondaria alla vista root, la vista radice dovrebbe apparire trasparente e gli elementi non dovrebbero essere accessibili in quella vista. Voglio attivare l'interazione con la vista secondaria. –

+0

@skram: per livello, intendevi un'altra vista? – user523234

+1

Sì, mi dispiace. Lo ripeterò. Un 'UIView' che funge da livello tra la radice e le sottoview. – skram

9

Costruire sulla risposta da @shabbirv, si può anche usare il colore selettore di IB

color picker

1

Questo sarà anche risolvere questo cambiando radice vista colore molto al di sotto, questo non influenzerà la visualizzazione secondaria.

[rootView setBackgroundColor:[[UIColor blackColor] colorWithAlphaComponent:0.7]]; 
Problemi correlati