我正试图给我的视图增加不透明度。当我添加一个CAGradientlayer时,我大致了解了我的计划,但是有一些问题。
我不能改变颜色。无论我使用什么值,我都会得到一个白色层
尽管我希望它分布在整个视图上,但它似乎在左边有一个偏移量。
我的代码如下:

let maskLayer = CAGradientLayer()

maskLayer.anchorPoint = CGPoint(x: 0.0, y: 0.0)

maskLayer.startPoint = CGPoint(x: 0.0, y: 0.5)
maskLayer.endPoint = CGPoint(x: 1.0, y: 0.5)

maskLayer.colors = [UIColor(white: 0.0, alpha: 0.0).CGColor, UIColor(white: 1.0, alpha: 1.0).CGColor, UIColor(white: 0.0, alpha: 0.0).CGColor]
maskLayer.locations = [0.0, 0.5, 1.0]
maskLayer.bounds = CGRectMake(0, 0, self.frame.width, self.frame.height)

self.layer.mask = maskLayer

我做错什么了?
谢谢

最佳答案

关于白色,这是因为图层遮罩不影响颜色,只影响透明度。本质上,只有alpha组件才有效果,并且忽略层掩码的R、G、B组件。
关于偏移量,可能是因为视图正在调整大小,而层没有保持最新?如果你能看到这个问题的答案:CALayers didn't get resized on its UIView's bounds change. Why?

10-07 17:36