UITableView背景颜色和分隔符样式更改无效

时间:2015-11-19 14:52:50

标签: ios swift uitableview

我试图在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

现在一切正常,虽然这不是问题的真正解决方案。有没有新想法?

2 个答案:

答案 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
}

以下是表背景颜色为红色(用于演示目的)并且单元格之间没有分隔符的屏幕截图。

enter image description here

这是另一个图像,表背景为红色,单元格之间为单线分隔符。

enter image description here

希望这会有所帮助!!

答案 1 :(得分:0)

我认为这是UITableView中的一个Bug。 当tableView移动到superview时,有时'separatorStyle'属性将重置为UITableViewCellSeparatorStyleSingleLine(默认样式)。 因此,完成帧更改后,必须再次设置此属性。像这样:

    [self.view addSubview:_searchContentView];
    _searchContentView.separatorStyle = UITableViewCellSeparatorStyleNone;