我有一个带有背景图像的ViewController,它作为TableVC作为其子视图。 我希望表视图是透明的并且已经完成了,tableviewcell也是透明的。但是我很难让tableviewheaderfooterview变得透明,就像我将它的contentview backgroundcolor设置为clearColor一样 - 它显示为灰色。
我正在使用Xcode 7.3.1
private let collapsibleTableView : UITableView = {
let tv = UITableView()
tv.translatesAutoresizingMaskIntoConstraints = false
tv.backgroundColor = .clearColor()
tv.backgroundView = nil
tv.separatorStyle = .None
return tv
}()
另外,我已经将UITableViewHeaderFooterView子类化为我的自定义类,并且我也尝试将contentView背景颜色设置为clearColor
override func layoutSubviews() {
super.layoutSubviews()
contentView.backgroundColor = .clearColor()
}
另外,我已经尝试在我的VC文件中再次设置它
func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let header = tableView.dequeueReusableHeaderFooterViewWithIdentifier("header") as? CustomTableViewHeader ?? CustomTableViewHeader(reuseIdentifier: "header")
header.contentView.backgroundColor = .clearColor()
header.titleLabel.text = "custom-text"
header.delegate = self
return header
}
另外,我还将tableviewcell的背景设置为透明
func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
cell.backgroundColor = .clearColor()
cell.contentView.backgroundColor = .clearColor()
}
但无论我做什么,headerview的背景都不会透明。
编辑:我也在SO上发现了post关于同样问题的问题,但是实施建议的解决方案是不行的 header.contentView.layer.backgroundColor = UIColor.clearColor().CGColor
答案 0 :(得分:0)
试试这个,直接将背景颜色更改为headerView,而不是更改headerView.contentView的颜色,对我来说就是这个例子
public func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let view = UIView(frame: CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: 50))
view.backgroundColor = UIColor.clear
return view
}
因此,请将public func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?
方法中的代码更改为此
func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let header = tableView.dequeueReusableHeaderFooterViewWithIdentifier("header") as? CustomTableViewHeader ?? CustomTableViewHeader(reuseIdentifier: "header")
header.backgroundColor = UIColor.clearColor()
header.titleLabel.text = "custom-text"
header.delegate = self
return header
}
我希望这有助于你