2013-11-27 15 views
7

Mam UIView (nazwijmy to superview), który zawiera inny UIView (pozwala wywołać to podeksportowanie).Dodaj CALayer poniżej UIView

Chciałbym dodać CALayer, aby był widoczny na górze mojego superwizji, ale pod moim wyglądzie. Innymi słowy, tło mojego wydziału powinno zastąpić warstwę.

Spojrzałem na addLayer:below: i inne, ale nie jestem pewien, jak z niego korzystać. Dzięki.

EDYTOWANIE: Mój zły, miałem inny widok między podglądem i podglądem, a ja się z tym bałam. Dzięki chłopaki !

+0

jaka część 'addLayer: poniżej:' nie rozumiesz? –

+0

Z tego, co rozumiem, powinienem zrobić: '[view.layer addSublayer: newLayer below: subview.layer]'. Ale muszę źle zrozumieć coś, ponieważ z tym kodem, nowa warstwa nadal pokazuje się na tle wyroczni. – DCMaxxx

Odpowiedz

22
[self.view.layer insertSublayer:CALayer below:subview.layer] 
+0

Mój zły, miałem inny widok między superview i subview, a ja borykałem się z tym. Działa to jak urok. Dzięki ! – DCMaxxx

+2

Odpowiedź jest niewystarczająca. Nie musisz wstawiać CALayera. Ponieważ jeśli dodasz podwarstwę do swojego super widoku, ta warstwa z pewnością będzie pod jakimkolwiek wykiem tego superviewu. –

-3
[superview.layer addSublayer: yourCALayer]; 
+0

, ale będzie na górze, przede wszystkim widoki. Dopóki nie dodasz swojej warstwy podglądu, ale nie zawsze jest to odpowiednie. –

7

W Swift:

self.view.layer.insertSublayer(self.avPlayerLayer, below: self.button1.layer) 
+0

co, jeśli nie mamy 'self.button1.layer' w' self.view.layer.subalayers'? Jeśli znasz odpowiedź, daj mi znać –

+0

Odpowiedź na Twój komentarz: http://pastebin.com/Mr4mJVk7 –

+0

Daj mi znać @flinth, jeśli mój komentarz powyżej pomógł Ci rozwiązać problem i nie zapomnij podać +1 dla ta odpowiedź. –