【问题标题】:Background Color of View gradient视图渐变的背景颜色
【发布时间】:2016-06-30 02:24:53
【问题描述】:

我对 tableViewCell 中的视图有疑问。所以我有一个 tableViewCell,里面有一个 UIView,我称之为“containerView”。现在我希望 containerView 的背景是从浅灰色到深灰色的渐变。在下面的代码中,您可以看到我如何设置图层和所有内容,但由于某种原因,带有渐变的“背景颜色”有点向右和向下。希望你能帮我解决这个问题,这是我第一次使用渐变,所以请耐心等待: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)

  }
}

【问题讨论】:

标签: ios swift view gradient


【解决方案1】:

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

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)      

【讨论】:

    【解决方案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];
    

    【讨论】:

      【解决方案3】:

      这就是我如何将渐变层添加到 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)
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-03-15
        • 2022-12-21
        • 1970-01-01
        • 2019-09-04
        • 1970-01-01
        • 2018-11-25
        • 2016-02-29
        • 2012-07-10
        相关资源
        最近更新 更多