背景颜色视图渐变

时间:2016-06-30 02:24:53

标签: ios swift view gradient

我在tableViewCell中有一个视图有问题。所以我有一个tableViewCell,里面我有一个叫做“容器视图”的UIView。现在我希望containerView的背景是从浅灰色到深灰色的渐变。在下面的代码中,您可以看到我如何设置图层和所有内容,但由于某种原因,带有渐变的“backgroundColor”向右和向下略微偏移。希望你能帮我解决这个问题,这是我第一次使用渐变,请耐心等待:D

import UIKit

class customCell: UITableViewCell {

@IBOutlet var containerView: UIView!


override func awakeFromNib() {
    super.awakeFromNib()
    // Initialization code
    let layerView = UIView()
    layerView.layer.frame = containerView.layer.frame
    let layer = CAGradientLayer()
    layer.frame = containerView.layer.frame
    layer.colors = [UIColor.lightGrayColor().CGColor, UIColor.darkGrayColor().CGColor]
    layerView.layer.addSublayer(layer)
    containerView.addSubview(layerView)
    containerView.sendSubviewToBack(layerView)

  }
}

3 个答案:

答案 0 :(得分:2)

这就是我将渐变颜色指定为自定义单元格的背景

的方法
let startingColorOfGradient = UIColor(colorLiteralRed: 217/255, green: 90/255, blue: 57/255, alpha: 1.0).CGColor
    let endingColorOFGradient = UIColor(colorLiteralRed: 227/255, green: 214/255, blue: 42/255, alpha: 1.0).CGColor
    let gradient: CAGradientLayer = CAGradientLayer()

    gradient.frame = bounds
    gradient.startPoint = CGPoint(x: 0.5, y: 0.0)
    gradient.endPoint = CGPoint(x: 0.5, y:1.0)
    gradient.colors = [startingColorOfGradient , endingColorOFGradient]
    // backGroundView is a View I have placed on my cell as container
    self.backGroundView.layer.insertSublayer(gradient, atIndex: 0)      

答案 1 :(得分:2)

以下代码将指定渐变颜色以查看背景。

CAGradientLayer *gradient = [CAGradientLayer layer];
gradient.frame = self.view.bounds;
gradient.colors = [NSArray arrayWithObjects:(id)[[UIColor colorWithRed:38/255.0 green:154/255.0 blue:255.0/255.0 alpha:1] CGColor], (id)[[UIColor colorWithRed:30/255.0 green:88/255.0 blue:151/255.0 alpha:1] CGColor], nil];
[self.view.layer insertSublayer:gradient atIndex:0];

答案 2 :(得分:0)

这是我如何将渐变层添加到canvasView(UIView)背景。 UIView的背景应该是清楚的。

func addGradient(color:UIColor){
        let gradient:CAGradientLayer = CAGradientLayer()
        gradient.frame.size = self.canvasView.frame.size
        gradient.colors = [color.cgColor,color.withAlphaComponent(0).cgColor] //Or any colors
        self.canvasView.layer.addSublayer(gradient)
    }