对UIImageView的某些部分的渐变效果

时间:2016-12-07 09:26:42

标签: ios cagradientlayer uiblureffect

我要求在UIImageView的某些部分(仅在左侧和右侧)添加渐变。 我知道,这可以通过使用CAGradientLayer()来完成。但我对属性的位置和颜色感到困惑。

以下是我的代码。它在顶部和底部添加渐变。

 if let containerView = imageView.superView {
        let gradient = CAGradientLayer(layer: containerView.layer)
        gradient.frame = containerView.bounds
        gradient.colors = [UIColor.clear.cgColor, UIColor.blue.cgColor ,UIColor.blue.cgColor, UIColor.clear.cgColor]
        gradient.locations = [0.0 ,  0.25 , 0.85 , 1.0]
        containerView.layer.mask = gradient
    }

提前致谢

2 个答案:

答案 0 :(得分:1)

您需要像这样在任意视图中创建CAGradientLayer图层

let gradientLayer = CAGradientLayer()
gradientLayer.frame = CGRectMake(0, 0,300, 380)
gradientLayer.colors = [UIColor(red:55.0/255, green:149.0/255, blue:227.0/255, alpha:1.0).CGColor,UIColor(red:20.0/255, green:77.0/255, blue:120.0/255, alpha:1.0).CGColor]
gradientLayer.startPoint = CGPoint(x: 0.0, y: 1.0)
gradientLayer.endPoint = CGPoint(x: 1.0, y: 1.0)
imgView.layer.insertSublayer(gradientLayer, atIndex: 0)

对于所有方向,例如top-buttomleft-right,反之亦然,您需要更改startPointendPoint 上述代码的输出是

enter image description here

答案 1 :(得分:0)

gradient.colors

  

gradient.colors属性用于定义每个渐变的颜色

如果您看到文档,

  

gradient.locations用于定义颜色之间的渐变停止点

     

文档:NSNumber对象的可选数组,将每个渐变停止的位置定义为范围[0,1]

中的值

这是你要找的吗?