2013-11-27 67 views
7

我得到了一個UIView(我們稱之爲superview),其中包含另一個UIView(讓我們稱之爲子視圖)。在下面添加CALayer UIView

我想添加一個CALayer,以便它可以在我的超級視圖頂部顯示,但在我的子視圖中可見。 換句話說,我的子視圖的背景應該覆蓋圖層。

我看過addLayer:below:等,但我不確定如何使用它。 謝謝。

編輯:我不好,我有超視圖和子視圖之間的另一種看法,我搞砸了。多謝你們 !

+0

什麼addLayer的'部分:下面:'你沒明白嗎? –

+0

從我所瞭解的,我應該這樣做:'[view.layer addSublayer:newLayer below:subview.layer]'。但是我必須誤解一些東西,因爲在這個代碼中,新層仍然顯示在子視圖的背景之上。 – DCMaxxx

回答

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

我的不好,我有超視圖和子視圖之間的另一種看法,我正在搞亂它。這像一個魅力。謝謝 ! – DCMaxxx

+2

答案不夠正確。你不需要插入你的CALayer。因爲如果你將子圖層添加到你的超級視圖中,這個圖層肯定會在這個超級視圖的任何子視圖下面。 –

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

,但它會位於頂部,高於所有視圖。直到你添加你的子視圖層,但這並不總是合適的。 –

7

斯威夫特

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

如果我們在'self.view.layer.subalayers'中沒有'self.button1.layer',該怎麼辦?如果你知道答案,請讓我知道 –

+0

對你的評論的迴應:http://pastebin.com/Mr4mJVk7 –

+0

讓我知道@flinth,如果我上面的評論幫助你解決了你的問題,不要忘記把+1這個答案。 –