我想要一个彩色渐变来覆盖我的视图。在视图控制器中,我有这段代码
- (void)viewDidLoad {
self.view.backgroundColor = [UIColor whiteColor];
CAGradientLayer *gradientLayer = [CAGradientLayer layer];
gradientLayer.frame = self.view.bounds;
gradientLayer.colors = [NSArray arrayWithObjects:(id)[UIColor redColor].CGColor, (id)[UIColor clearColor].CGColor, nil];
gradientLayer.startPoint = CGPointMake(0, 0);
gradientLayer.endPoint = CGPointMake(0, 1.0f);
self.view.layer.mask = gradientLayer;
}
但即使第一种颜色是红色,我也只能看到黑色渐变。如何显示红色渐变?
答案 0 :(得分:2)
TLDR:不要将渐变设置为图层蒙版,而是将渐变图层添加为view.layer
的子图层。
图层使用图层蒙版蒙版通过使用每个像素的蒙版的alpha来确定自己内容的alpha,因为gradientLayer
完全不透明,你得到的效果不是你的那个希望能够。
图层类似于视图(视图实际上是图层的包装),您可以将它们添加为子图层,其方式与将视图添加为子视图的方式类似。