在UIView下添加CALayer

13

我有一个UIView(称为superview),其中包含另一个UIView(称为subview)。

我想添加一个CALayer,使其在我的superview上可见,但在我的subview下方。 换句话说,我的subview的背景应该覆盖该层。

我查看了addLayer:below:等内容,但不确定如何使用它。 谢谢。

编辑:我的错,我在superview和subview之间有另一个视图,并且我弄混了。谢谢大家!

3个回答

31
[self.view.layer insertSublayer:CALayer below:subview.layer]

我的错,我在父视图和子视图之间还有另一个视图,而且我搞混了。这个方法非常好用。谢谢! - DCMaxxx
2
答案不够正确。您不需要插入CALayer。因为如果您将子层添加到父视图中,此层肯定会在该父视图的任何子视图下面。 - Eugene P

11

Swift中:

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

如果在self.view.layer.sublayers中没有self.button1.layer,那该怎么办?如果您知道答案,请告诉我。 - Dima Deplov
请告诉我 @flinth,我的上面的评论是否有帮助解决你的问题,并别忘了给这个答案点赞(+1)。 - King-Wizard
很遗憾,我知道这些方法。请看一下我的问题:https://dev59.com/fovda4cB1Zd3GeqPZnja - Dima Deplov
@flinth 我刚刚回答了你的问题。 - King-Wizard

4
更普遍的解决方案适用于您无法访问子视图的情况:
layer.insertSublayer(sublayer, at: 0)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接