我试图在UITableView中更改背景和分隔符样式,但没有任何反应。在下面的代码段中,除了这些更改之外的所有内容都有效。
此tableView位于@IBDesignable UIView中。最好的部分是,一切都在界面构建器中显示。颜色改变,分隔符消失。
func getTableViewToDisplayRecords() -> UITableView {
let tableView:UITableView = UITableView(frame: CGRect(origin: CGPoint.zero, size: CGSize(width: self.frame.size.width, height: (self.frame.size.height * 3) / 4)), style: UITableViewStyle.Plain)
tableView.dataSource = self
tableView.delegate = self
tableView.tableFooterView = UIView(frame:CGRectZero)
tableView.backgroundColor = UIColor.clearColor()
tableView.separatorStyle = .None
return tableView
}
可能导致此行为的原因是什么?
-----编辑-----
我设法做了一个解决方法:
UITableView.appearance().backgroundColor = UIColor.clearColor()
UITableView.appearance().separatorStyle = .None
现在一切正常,虽然这不是问题的真正解决方案。有没有新想法?
答案 0 :(得分:0)
尝试下面的代码段来更改UITableview的背景颜色,同时不更改表格单元格之间的分隔符。
{
tableView.backgroundColor = UIColor.clearColor()
tableView.separatorStyle = UITableViewCellSeparatorStyle.None
}
此外,您需要更改UITableViewCells的背景颜色
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{
let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as UITableViewCell
// change the background color of cell, which is by-default white
cell.backgroundColor = UIColor.clearColor()
return cell
}
以下是表背景颜色为红色(用于演示目的)并且单元格之间没有分隔符的屏幕截图。
这是另一个图像,表背景为红色,单元格之间为单线分隔符。
希望这会有所帮助!!
答案 1 :(得分:0)
我认为这是UITableView中的一个Bug。 当tableView移动到superview时,有时'separatorStyle'属性将重置为UITableViewCellSeparatorStyleSingleLine(默认样式)。 因此,完成帧更改后,必须再次设置此属性。像这样:
[self.view addSubview:_searchContentView];
_searchContentView.separatorStyle = UITableViewCellSeparatorStyleNone;