我一直试图弄清楚如何在tableView中添加渐变图层,并尝试了很多不同的东西,但是我无法让表格视图细胞显示出来,无论有多少个带来的子视图或发送我的视图。
let gradientLayer = CAGradientLayer()
gradientLayer.frame = view.bounds
gradientLayer.colors = [UIColor(red: 125/255.0, green: 125/255.0, blue: 125/255.0, alpha: 1.0).cgColor, UIColor(red: 125/255.0, green: 125/255.0, blue: 255/255.0, alpha: 1.0).cgColor]
gradientLayer.startPoint = CGPoint(x: 0.0, y: 0.0)
gradientLayer.endPoint = CGPoint(x: 0.0, y: 1.0)
tableView.layer.addSublayer(gradientLayer)
无论带子视图和发送子视图的组合有多少,我似乎总是得到这个并且单元格不会出现在前面:
有没有人知道如何解决这个问题,或者如何做我想做的其他方式让它发挥作用?
非常感谢任何帮助,谢谢。
答案 0 :(得分:3)
创建背景视图并将其分配给TableView
:
func setGradientToTableView(tableView: UITableView, _ topColor:UIColor, _ bottomColor:UIColor) {
let gradientBackgroundColors = [topColor.CGColor, bottomColor.CGColor]
let gradientLocations = [0.0,1.0]
let gradientLayer = CAGradientLayer()
gradientLayer.colors = gradientBackgroundColors
gradientLayer.locations = gradientLocations
gradientLayer.frame = tableView.bounds
let backgroundView = UIView(frame: tableView.bounds)
backgroundView.layer.insertSublayer(gradientLayer, atIndex: 0)
tableView.backgroundView = backgroundView
}
同时清除TableView
单元格的颜色:
override func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
cell.backgroundColor = UIColor.clearColor()
}
答案 1 :(得分:0)
@AGM Tazim
感谢您提供的那段代码。我对它进行了一些微调,以解决“ cGColor”升级后的快速语言的问题,并指定了渐变的起点和终点。
希望这对希望使其更具可定制性的人很有帮助
func setGradientToTableView(tableView: UITableView, _ topColor:UIColor, _ bottomColor:UIColor) {
let gradientBackgroundColors = [topColor.cgColor, bottomColor.cgColor]
let gradientLayer = CAGradientLayer()
gradientLayer.colors = gradientBackgroundColors
gradientLayer.locations = [0.0,1.0]
gradientLayer.startPoint = CGPoint(x: 0, y: 0)
gradientLayer.endPoint = CGPoint(x: 0, y: 1)
gradientLayer.frame = tableView.bounds
let backgroundView = UIView(frame: tableView.bounds)
backgroundView.layer.insertSublayer(gradientLayer, at: 0)
tableView.backgroundView = backgroundView
}