ios - 空行和节标题的 Swift TableView 背景

标签 ios swift uitableview swift2

我有一个带有标题的 TableView Controller ,我想为其提供特定的背景颜色。我还希望文本“John Doe”与菜单图标完美对齐,如您在以下屏幕截图中所见:

Screenshot

为了确保“John Doe”与菜单图标完美对齐,并设置正确的背景颜色,我使用了以下代码:

    override func viewWillAppear(animated: Bool) {
        super.viewWillAppear(animated)
        let inset = UIEdgeInsetsMake(20, 0, 0, 0);
        tableView.contentInset = inset

        tableView.backgroundColor = UIColor(red: 0.63, green: 0.64, blue: 0.66, alpha: 1.0)
    }

状态栏(“Carrier/8:57 AM”)高度为 20,因此需要插入以确保 John Doe 正确对齐。

效果很好,但现在空行也采用这种背景色。我尝试在“注销”按钮下添加一个空 View ,并为其赋予与行相同的颜色,但我似乎无法将其一直延伸到 TableView Controller 的底部。

我也试过设置表格标题的背景颜色,但这不起作用,因为状态栏没有正确的背景颜色(因为插图)。

如何确保“注销”按钮下方的所有内容与实际行的背景颜色相同?

编辑:设置表格的背景颜色会导致: Screenshot

现在状态栏也有了这种颜色,因为插入了。

最佳答案

使用 tableView.backgroundColor,您可以为整个 tableview 设置背景颜色,这适用于页眉,因为它具有 UIColor.clearColor()(透明)作为默认颜色。

如果您希望所有表格都为浅灰色,而只有标题为深灰色,您需要将表格背景设置为与单元格相同,然后实现 willDisplayHeaderView仅用于设置标题颜色:

func tableView(tableView: UITableView,
               willDisplayHeaderView view: UIView,
               forSection section: Int){
    let header = view as! UITableViewHeaderFooterView
    header.contentView.backgroundColor = UIColor(red: 0.63, green: 0.64, blue: 0.66, alpha: 1.0)
}

关于ios - 空行和节标题的 Swift TableView 背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33096192/

相关文章:

swift - AVaudioPlayer 返回 nil

IOS Firebase,iOS 的什么数据类型相当于字段 "map"??

swift - (Swift) 核心数据移动行 - 无效更新错误

ios - UITableView 的 didSelectRowAtIndexPath 方法未被调用

ios - 如何删除 Collection View 单元格之间的空间?

ios - 在不是我的设备上运行 Xcode 应用程序?

ios - shouldShowMenuForRowAt 未被调用

ios - 获取嵌入在 ScrollView 中的单元格的中心点

swift - 三元运算符结合性

ios - 滚动时如何在静态单元格表​​ View 中创建弹性图像