gpt4 book ai didi

ios - 无法将 CAGradientLayer 应用为 UITableView 背景 View

转载 作者:行者123 更新时间:2023-11-28 13:59:44 25 4
gpt4 key购买 nike

我有一个 UITableViewController,我正在尝试应用渐变背景。

我希望渐变出现在整个 View 上,而不仅仅是一个单元格。

我有一个扩展,其中包含我在 viewDidLoad 中调用的函数。我期待它在我的 UITableView

后面应用和可见

但是背景总是白色的。我设置了 view.backgroundColor = UIColor.clear,因为这只是我渐变上的一个白色层,但是它没有出现,因为背景现在只是黑色。

HomeController.swift

   extension HomeController {
fileprivate func applyBackgroundGradientView() -> Void {
let frame = CGRect(x: 0.0, y: 0.0, width: view.frame.size.width, height: view.frame.size.height)
let bgView = UIView(frame: frame)
bgView.layer.insertSublayer(gradientBackgroundView, at: 0)

tableView.backgroundView = bgView
}
}

GradientBackgroundView.swift

class GradientBackgroundView: CAGradientLayer {

override init() {
super.init()
setupGradientLayer()
}

required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}

fileprivate func setupGradientLayer() -> Void {

self.colors = ["226320","256c23","39a636","267024"].map({ hex -> CGColor in
return UIColor.hexStringToUIColor(hex: hex).cgColor
})

self.calculatePoints(for: 45)
}
}

最佳答案

我在你的 CAGradientLayer 上没有看到框架。

如果您不设置 frame ,您的 View 将不会显示。

let gradientBackgroundView = GradientBackgroundView()
gradientBackgroundView.frame = CGRect(x: 0.0, y: 0.0, width: view.frame.size.width, height: view.frame.size.height)
view.layer.insertSublayer(gradientBackgroundView, at: 0)

关于ios - 无法将 CAGradientLayer 应用为 UITableView 背景 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53654070/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com