我需要从上到下将渐变色从透明变为黑色,不透明度为30%。我发现最好的方法是使用CAGradientLayer。我想在“根”层之上添加该层,以避免为此创建单独的视图。对于我来说,拥有多个层而不是多个UIViews更有意义。到目前为止,这是我写的没有运气。
// view did load
var gradientLayer : CAGradientLayer = CAGradientLayer();
gradientLayer.frame = coverView.bounds;
gradientLayer.colors = [UIColor.redColor(), UIColor.blueColor()];
coverView.layer.insertSublayer(gradientLayer, above: coverView.layer);
// also tried below
// coverView.layer.insertSublayer(gradientLayer, atIndex: 0);
我希望这能在图像上显示渐变色。下面的代码根本没有显示任何内容。你能建议我尝试一下吗?
答案 0 :(得分:6)
gradientLayer.frame = coverView.bounds;
coverView.bounds
给出完全不同的输出。使用coverView.layer.frame
确实使图层成为父图层的大小。
CAGradientLayer colors属性也不喜欢UIColor
;使用CGColor解决了这个问题。我使用了带有atIndex属性的函数。这是最终的代码:
var gradientLayer : CAGradientLayer = CAGradientLayer();
gradientLayer.frame = coverView.layer.frame;
gradientLayer.colors = [UIColor.clearColor().CGColor!, UIColor.blackColor().CGColor!];
gradientLayer.startPoint = CGPointMake(0.5, 0.0);
gradientLayer.endPoint = CGPointMake(0.5, 1.0)
gradientLayer.opacity = 0.8;
coverView.layer.insertSublayer(gradientLayer, atIndex: 0);