CAGradientLayer Mask在Swift中添加Opacity

时间:2014-11-08 17:18:49

标签: ios swift calayer

我正在尝试为我的视图添加不透明度。当我添加一个CAGradientlayer时,我大致得到了我计划的内容,但是有一些问题。

  1. 我无法改变颜色。无论我使用什么值,我都会得到一个白色的层
  2. 即使我希望它分布在整个视图中,但它似乎偏向左侧。
  3. enter image description here

    我的代码如下:

    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
    

    我做错了什么?

    由于

1 个答案:

答案 0 :(得分:0)

关于白色,这是因为图层蒙版对颜色没有贡献,只有透明度。基本上,只有alpha组件有效,而图层蒙版的R,G,B组件会被忽略。

关于偏移量,可能是因为您的视图调整了大小,并且您的图层不是最新的?如果是这样,您可以看到另一个问题的答案:CALayers didn't get resized on its UIView's bounds change. Why?