尝试插入一个自定义渐变的图层作为tableView的背景。但是,它会显示在表格前面。
之前有用,但是当我更新XCode时它现在不起作用。
let statusBarHeight = UIApplication.shared.statusBarFrame.height
let gradient = self.getMenuGradientLayer()
gradient.frame = CGRect(x: 0, y: -statusBarHeight, width: self.view.frame.width, height: statusBarHeight + self.view.bounds.height)
// Tried multiple options. Not at the same time, of course.
self.view.layer.insertSublayer(gradient, at: 0) // Worked previously
self.tableView.layer.insertSublayer(gradient, at: 0)
self.tableView.backgroundView?.layer.insertSublayer(gradient, at: 0)
其中一些选项根本不显示渐变,有些显示在桌面前面。
该类本身是 UITableViewController 。
我尝试在 viewDidLoad,viewWillAppear,viewWillLayoutSubviews 中实现此代码。
同样的事情......
答案 0 :(得分:0)
找到另一种使用tableView的backgroundView属性执行任务的方法。
let statusBarHeight = UIApplication.shared.statusBarFrame.height
let frame = CGRect(x: 0, y: -statusBarHeight, width: self.view.frame.width, height: statusBarHeight + self.view.bounds.height)
let gradient = self.getMenuGradientLayer()
gradient.frame = frame
let backgroundView = UIView(frame: frame)
backgroundView.layer.insertSublayer(gradient, at: 0)
self.tableView.backgroundView = backgroundView
然而,仍然不明白为什么以前的解决方案停止工作......