在Swift中的视图上添加渐变

时间:2015-02-13 11:12:46

标签: ios swift cagradientlayer

以下代码似乎使用Objective-C,但其Swift版本不起作用。

我尝试了以下内容:

  • 在集合视图单元格中添加渐变
  • 在viewController中添加渐变
  • 使用UIColor& CGColor
  • 使用insertSubLayer

    var mGradient = CAGradientLayer()
    mGradient.frame = favoriteCell.mImageView.bounds
    var colors = [CGColor]()
    colors.append(UIColor(red: 0, green: 0, blue: 0, alpha: 1).CGColor)
    colors.append(UIColor(red: 0, green: 0, blue: 0, alpha: 0).CGColor)
    
    mGradient.startPoint = CGPointMake(0.1, 0.5)
    mGradient.endPoint = CGPointMake(0.9, 0.5)
    
    favoriteCell.mImageView.layer.addSublayer(mGradient)
    

3 个答案:

答案 0 :(得分:3)

Swift 3

let mGradient = CAGradientLayer()
mGradient.frame = favoriteCell.mImageView.bounds
var colors = [CGColor]()
colors.append(UIColor(red: 0, green: 0, blue: 0, alpha: 1).cgColor)
colors.append(UIColor(red: 0, green: 0, blue: 0, alpha: 0).cgColor)

mGradient.startPoint = CGPoint(x: 0.1, y: 0.5)
mGradient.endPoint = CGPoint(x: 0.9, y: 0.5)
mGradient.colors = colors

favoriteCell.mImageView.layer.addSublayer(mGradient)

答案 1 :(得分:2)

您需要设置渐变的颜色

mGradient.colors = colors

答案 2 :(得分:1)

试试这个:

var mGradient : CAGradientLayer = CAGradientLayer()
mGradient.frame = favoriteCell.mImageView.bounds
mGradient.frame.origin = CGPointMake(0.0,0.0)

var colors = [CGColor]()
colors.append(UIColor(red: 0, green: 0, blue: 0, alpha: 1).CGColor)
colors.append(UIColor(red: 0, green: 0, blue: 0, alpha: 0).CGColor)

mGradient.locations = [0.0 , 1.0]
mGradient.startPoint = CGPointMake(0.1, 0.5)
mGradient.endPoint = CGPointMake(0.9, 0.5)
mGradient.frame = CGRect(x: 0.0, y: 0.0, width: favoriteCell.mImageView.frame.size.width, height: favoriteCell.mImageView.frame.size.height)

favoriteCell.mImageView.layer.insertSublayer(mGradient, atIndex: 0)