我想要彩色渐变覆盖我的视图。在视图控制器中,我有此代码
- (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;
}
但是,即使第一种颜色是红色,我也只会看到黑色渐变。如何显示红色渐变呢?
最佳答案
TLDR:不用将渐变设置为图层蒙版,而是将渐变图层添加为view.layer
的子层。
图层使用图层蒙版蒙版通过在每个像素处使用蒙版的Alpha来确定其自身内容的Alpha,因为您的gradientLayer
是完全不透明的,因此获得的效果并非您所希望的。
图层类似于视图(视图实际上是图层的包装器),您可以通过将视图添加为子视图的类似方式将它们添加为子层。
关于ios - CAGradientLayer无法更改颜色,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34750523/