iOS Swift - 如何更改表格视图的背景颜色?

时间:2015-06-06 06:25:17

标签: ios uitableview swift

我有一个简单的表格视图,我可以改变单元格的颜色,但是当试图改变表格视图(背景部分)的颜色时它不起作用......我通过故事板试了一下......有人可以请帮助

6 个答案:

答案 0 :(得分:50)

首先在viewDidLoad中设置tableView的背景颜色,如下所示:

override func viewDidLoad() {
    super.viewDidLoad()   
    self.tableView.backgroundColor = UIColor.lightGrayColor()
}

现在添加此方法:

override func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
    cell.backgroundColor = UIColor.clearColor()
}

Swift 3 中,使用以下方法而不是上面的方法:

override func viewDidLoad() {
    super.viewDidLoad()
    self.tableView.backgroundColor = UIColor.lightGray
}

override func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
    cell.backgroundColor = UIColor.clear
}

答案 1 :(得分:15)

func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
    cell.contentView.backgroundColor = UIColor.yellowColor()
}

Swift 3

func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
    cell.contentView.backgroundColor = UIColor.yellow
}

答案 2 :(得分:6)

如果您想通过故事板实现这一点,请选择"内容视图" "表格视图单元格"在你的tableView然后在属性Inspector中转到View并改变它的颜色,如下所示:

Xcode

答案 3 :(得分:3)

将此代码用于更改tableView颜色

override func viewDidLoad() {
        super.viewDidLoad()

       // define tableview background color
        self.tableView.backgroundColor = UIColor.clearColor()
}

用于更改tableView单元格颜色

cell.backgroundColor = UIColor.clearColor()

答案 4 :(得分:0)

我玩游戏有点晚了!但是,以上答案对我都不起作用,因此,如果其他任何人都跳上了这个话题,就分享一下我发现的有效方法。

注意:我也有自己的自定义单元格类。不知道这是否会影响您的代码!

@IBDesignable class YourViewController: UITableViewController {

//IBInspectable and IBDesignable makes the properties accessible in storyboard
@IBInspectable var tableViewBackground: UIColor?
@IBInspectable var cellViewBackground: UIColor?

//in case you want to customize the text color, as well!
@IBInspectable var customTextColor: UIColor?


override func viewDidLoad() {
//your code
self.tableView.backgroundColor = tableViewBackground
}

override func tableView(_ tableView: UITableView, cellForRowAt indexPath:    IndexPath) -> UITableViewCell {

    let cell = UITableViewCell()
    cell.textLabel?.textColor = customTextColor
    cell.backgroundColor = cellViewBackground
    return cell
}
//the rest of your code
}

查找可检查对象:

1)。在tableView的viewController的Storyboard菜单中,单击yourViewController。 viewController内部的第一个下拉列表。 (第一个下拉列表将包含您的tableView和cellView。根据您的特定项目,它还可以包含其他东西)。

2)。在属性检查器中,您将看到一个标题,其中包含您的viewController的名称和我们上面定义的@IBInspectable属性!

3)。然后,您可以在需要时更改它们。

希望这会有所帮助!

答案 5 :(得分:0)

您有:

  1. 单元格背景和
  2. 单元格ContentView

将ContentView像SB中的Default(透明)一样放置,并在awakeFromNib中的Cell方法中,只需:

self.backgroundColor = UIColor.SomeColor