2010-11-29 3 views
2

Ich habe eine UIViewController, die ein Label und einen Button enthält. Ich möchte, dass der Hintergrund der Ansicht transparent ist, also setze ich ihn auf clearColor und opaque = NO.UIView sollte transparent sein, zeigt aber nur weiß

Die Ansicht zeigt jedoch immer einen weißen Hintergrund an. Wie kann ich das beheben?

Danke.

+2

Was ist hinter der Ansicht? – Brian

+0

abgeordnet. Vielleicht ist es transparent, und der weiße Hintergrund, den Sie sehen, ist, was auch immer dahinter steckt. Was wahrscheinlich passiert, ist, dass Sie den Hintergrund der UIWindow sehen (Anmerkung: nicht die UIViewControllers), der, IIRC, standardmäßig weiß ist. –

+0

Hinter der Ansicht befindet sich eine Tabellenansicht. Es ist der View-Controller-Hintergrund, denn wenn ich es in gelb ändere, ändert es sich entsprechend. Ich kann es einfach nicht transparent machen. – joec

Antwort

2

Sobald ein neuer View-Controller an den Anfang des Stapels geschoben wird, wird alles dahinter verborgen, sodass Sie die Alpha-Einstellungen für diese Ansicht anpassen können, aber dahinter nichts zu sehen ist (so dass Sie weiß sehen).

Sie müssen stattdessen eine UIView verwenden. Ich würde normalerweise UIView Unterklasse und passen Sie es so, wie ich will, dann instanziiert und als Subview hinzufügen, wenn Sie es verwenden müssen:

-(id)initWithFrame:(CGRect)frame 
{  
    if (self = [super initWithFrame:CGRectZero]) 
    { 
     // Add your label and button here... 
    } 
    return self; 
} 
+2

Das klingt nicht richtig. Ein UIViewController verwendet sowieso eine UIView, daher sollte es nicht wichtig sein, ob Sie das eine oder das andere verwenden. –

+0

Haben Sie es versucht? Lassen Sie es mich wissen, wenn Sie dies ohne eine UIView erreichen konnten. – Rog

0

Sorry, ich habe nicht genug rep zu kommentieren Rog Antwort, also werde ich 'Eine andere Antwort' posten.

diesen Code versuchen und sehen, ob es für Sie gut stellt sich heraus:

UIVIew *view = [[UIView alloc] init]; 
view.alpha = 0; // alpha 1.0 is opaque, alpha 0.5 is translucent and 0 is clear 

Ehrlich gesagt, ich habe vor nicht versucht, dass, wie ich brauche nicht zu tun. Wenn ich jedoch eine neue UIView aus der Bibliothek ziehe, befindet sich die Alpha-Option in den Eigenschaften.

Hoffe, das hilft.

+0

Dies sollte funktionieren, aber beachten Sie, dass der angegebene Initialisierer für UIView eigentlich initWithFrame ist: – Rog

+0

ah ja, danke, dass du das herausgibst! –