我创建了一个自定义的UITableViewHeaderFooterView,并且tableview的背景颜色为白色。
self.contentView.backgroundColor = UIColor.clearColor()
但是,标题标题的背景始终显示为灰色。如何删除灰色背景?
因为我已经覆盖了UITableView的drawRect函数,所以我希望在标题视图后面出现一些东西。
我尝试了以下内容:
a)将UITableView样式更改为Grouped,问题出在了,但标题不能粘在桌面上。
b)使用节标题标题而不是标题视图
func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String?
标题的背景是透明的,但我有多个标签。
任何人都可以帮我解决这个问题吗?
感谢@Omkar,设置了正确的方法
cell.layer.backgroundColor = UIColor.clearColor().CGColor
答案 0 :(得分:3)
您需要设置内容视图的背景颜色以清除颜色,同时还需要设置tableView单元格的背景颜色以清除颜色。将其放在viewForHeaderInSection方法中。然后,您将能够看到设置为tableView的颜色。
YourCell.contentView.backgroundColor = UIColor.clearColor()
YourCell.backgroundColor = UIColor.clearColor()
请查看我的代码的附加图像以及故事板中样式简洁的表格视图。我还添加了运行后的外观图像
由于
答案 1 :(得分:0)
这是我的ViewController代码,唯一的区别是我使用headerfootview子类。我将tableview的背景设置为蓝色,如果我向下拉一点,你会看到在标题上看起来像一个掩码。
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet weak var tableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
tableView.dataSource = self
tableView.delegate = self
tableView.registerClass(UITableViewHeaderFooterView.self, forHeaderFooterViewReuseIdentifier: "HeaderCell")
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 4
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 10
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("CustomCell", forIndexPath: indexPath)
cell.textLabel?.text = "\(indexPath.row)"
return cell
}
func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let cell = tableView.dequeueReusableHeaderFooterViewWithIdentifier("HeaderCell") as UITableViewHeaderFooterView!
cell!.textLabel?.text = "Header"
cell!.contentView.backgroundColor = UIColor.clearColor()
cell.backgroundColor = UIColor.clearColor()
return cell
}
}