带圆角的 UIView CAGradient?

Jac*_*cob 4 gradient objective-c roundedcorners-dropshadow uiview ios5

我有一个带有圆角和阴影的 UIView,已实现并正在工作。但是 UIView 有一个无聊的背景颜色,白色。所以我想放一个渐变层作为背景。在标签、按钮下方,最重要的是,使圆角仍然出现。

CAGradientLayer *gradient = [CAGradientLayer layer];
gradient.frame = subHudView.bounds;
gradient.colors = [NSArray arrayWithObjects:(id)[[UIColor blackColor] CGColor], (id)[[UIColor whiteColor] CGColor], nil];
[subHudView.layer addSublayer:gradient];
subHudView.layer.cornerRadius = 8;
subHudView.layer.masksToBounds = NO;
subHudView.layer.shadowOffset = CGSizeMake(-5, 5);
subHudView.layer.shadowRadius = 8;
subHudView.layer.shadowOpacity = 0.75;
Run Code Online (Sandbox Code Playgroud)

这是我尝试实现的代码,但渐变层位于视图中的所有内容之上。如何使渐变在所有控件和标签下显示?每一个回应的帮助将不胜感激。

小智 9

在斯威夫特:

let gradientLayer = CAGradientLayer()
gradientLayer.cornerRadius = 20.0
Run Code Online (Sandbox Code Playgroud)


gca*_*amp 1

当您addSublayer:将图层添加到所有子图层的顶部时。

你可能应该使用类似的东西来代替:

[subHudView.layer insertSublayer:gradient atIndex:0];
Run Code Online (Sandbox Code Playgroud)

这样,意志CAGradientLayer就低于其他一切。