CAGradientLayer发回

Ale*_*ien 10 cocoa-touch core-animation ios cagradientlayer

我有一个UIViewController我用它创建背景渐变的地方

    CAGradientLayer *gradient = [CAGradientLayer layer];
    ...
    gradient.frame = frame;
    self.backGradient = gradient;
    [self.view.layer insertSublayer:gradient atIndex:0];
Run Code Online (Sandbox Code Playgroud)

它工作正常,后来我必须将_selectionFrame我的视图控制器的子视图发送回:(
我经常需要发送_selectionFrame到后面和前面,用于动画和绘图目的)

self 是viewController:

[self.view sendSubviewToBack:_selectionFrame]; 
Run Code Online (Sandbox Code Playgroud)

然而,这发送的_selectionFrame背后gradient.我希望它只是在渐变之上但在每个其他子视图之下.问题是渐变不是视图,所以我不能使用渐变的函数.
我想打个电话[self.view sendSubviewToBack:gradient];

但这不起作用.

Kha*_*yen 14

创建仅包含渐变的视图


Dem*_*ese 12

.layer有一个子层属性,它是一个简单的数组.所以你可以插入你想要的任何索引.如果您希望新图层位于后面,只需将其插入0,如下所示:

let newLayer = CALayer() // your layer that you want at the back
view.layer.insertSublayer(newLayer, at: 0)
Run Code Online (Sandbox Code Playgroud)