2016-07-21 14 views
1

ich, dass ein tranparent Hintergrund in meinem UIViewController haben wollen benutzte ich Clear wie dieseClear machen Hintergrundfarbe schwarz

colorPickerVc.view.backgroundColor = UIColor.clearColor() 
presentViewController(colorPickerVc, animated: true, completion: nil) 

das Problem ist, wenn colorPickerVc fertig geladen, die Hintergrundfarbe schwarz werden möchte ich eine Lösung wenn möglich, dass die Arbeit an ios 7 bis danken ist für Ihre Hilfe


Lösung von @ good4pc:

colorPickerVc.view.backgroundColor = UIColor.clearColor() 
if #available(iOS 8.0, *) 
{ 
    colorPickerVc.modalPresentationStyle = UIModal PresentationStyle.OverCurrentContext 
} 
else 
{ 
    colorPickerVc.modalPresentationStyle = UIModalPresentationStyle.CurrentContext 
} 

presentViewController(colorPickerVc, animated: true, completion: nil) 

Arbeit für mich, ich danke euch für eure Hilfe

+0

Sie müssen einen Screenshot der vorherigen Ansicht Controller hinzufügen und fügen Sie es als Hintergrund in präsentiert – iSashok

+0

Verwenden Sie Storyboard, um Ihre colorPickerVC instanziieren? –

+0

Von einer Feder ja lassen Sie ColorPickerVc = ColorPickerViewContro (nibName: "ColorPickerViewContro", Bündel: Null) – tamtoum1987

Antwort

2
colorPickerVc.modalPresentationStyle = UIModalPresentationStyle.OverCurrentContext 
colorPickerVc.view.backgroundColor = UIColor.clearColor() 
+0

ja diese lösung funktioniert gut, aber wie machen diese arbeit auf ios 7? – tamtoum1987

+0

den folgenden Code hinzufügen, wenn #available (iOS 8.0 *) { colorPickerVc.modalPresentationStyle = UIModalPresentationStyle.OverCurrentContext } else { colorPickerVc.modalPresentationStyle = UIModalPresentationStyle.CurrentContext } – good4pc

+0

ok ich dieses – tamtoum1987

0

Versuchen Sie die Ansicht der Schicht der Opazität auf Null statt mit klaren Farb

+0

ok ich werde das versuchen, aber ich werde suchen, wie gesetzt opazität – tamtoum1987

0

Die Clear Einstellung() tatsächlich funktioniert, aber wenn Sie nicht über alles hinter dem Element, das Sie clearColor() machen, wird der Bildschirm schwarz sein, denn so sieht es aus, wenn es nichts zu zeigen gibt

Haben Sie wirklich etwas hinter dem Objekt, das Sie klarstellen?

Welche Farbe oder Bild oder was sollte im Hintergrund sein?

Da es sich um einen Farbwähler handelt, würde ich davon ausgehen, dass Sie den letzten ViewController im Hintergrund haben wollen, aber was Sie tun, ist ein ganz neuer Bildschirm zu erstellen, also wäre es wahrscheinlich nicht zu haben der Picker als Viewcontroller, sondern nur als UIView als Overlay auf dem vorherigen Viewcontroller zu setzen oder in den Kommentaren erwähnt, einen Screenshot bekommen und legt es hinter

+0

ich habe andere ansichten hinter ... – tamtoum1987

0

Siehe im Debug was colorPickerVc.view.superView und colorPickerVc.view.superView.superView ist. Beim Darstellen eines View-Controllers wird nicht nur die Ansicht der Hierarchie hinzugefügt.

0

Ich hatte das gleiche Problem mit mehreren Ansichten und alles, was ich tun musste, ist das undurchsichtige Merkmal auf NO (nicht ausgewählt) im Storyboard gesetzt. (mit Xcode 9 Beta)