从表视图控制器隐藏背景视图

时间:2014-08-14 21:30:51

标签: swift

我刚刚添加了一个占位符标签,以便在我的表视图为空时显示文本,但是我无法弄清楚在添加新单元格后如何关闭背景视图。

这是表格视图在添加单元格后的外观:

enter image description here

这是我用来显示标签的代码:

  override func tableView(tableView: UITableView?, numberOfRowsInSection section: Int) -> Int {
    // #warning Incomplete method implementation.
    // Return the number of rows in the section.

    println(arrayObject.paymentsArray().count)
    if arrayObject.paymentsArray().count == 0 {
        backgroundLabel.text = "You haven't added any transactions yet. Tap the add button to add a new transaction."
        backgroundLabel.frame = CGRectMake(0, 0, self.view.bounds.width, self.view.bounds.height)
        backgroundLabel.numberOfLines = 0
        backgroundLabel.textAlignment = NSTextAlignment.Center
        backgroundLabel.sizeToFit()

        self.tableView.backgroundView = backgroundLabel
        self.tableView.separatorStyle = UITableViewCellSeparatorStyle.None
        return 0
    } else {
        return arrayObject.paymentsArray().count
    }
}

如果arrayObject.paymentsArray()。count不等于0,我该如何解除背景标签?

编辑:

我将代码更改为:

override func tableView(tableView: UITableView?, numberOfRowsInSection section: Int) -> Int {
    // #warning Incomplete method implementation.
    // Return the number of rows in the section.

    println(arrayObject.paymentsArray().count)
    if arrayObject.paymentsArray().count == 0 {
        backgroundLabel.text = "You haven't added any transactions yet. Tap the add button to add a new transaction."
        backgroundLabel.frame = CGRectMake(0, 0, self.view.bounds.width, self.view.bounds.height)
        backgroundLabel.numberOfLines = 0
        backgroundLabel.textAlignment = NSTextAlignment.Center
        backgroundLabel.sizeToFit()
        backgroundLabel.hidden = false

        self.tableView.backgroundView = backgroundLabel
        self.tableView.separatorStyle = UITableViewCellSeparatorStyle.None
        return 0
    } else {
        backgroundLabel.hidden = true
        return arrayObject.paymentsArray().count
    }
}

现在按预期隐藏了消息,但是表视图丢失了单元格之间的分界线。

enter image description here

1 个答案:

答案 0 :(得分:1)

您需要保留对背景标签的引用(比如作为viewController的属性),然后将hidden设置为等于true,例如

你的else clause.else标签上的

self.backgroundLabel.hidden = true

{
    self.backgroundLabel.hidden = true
    return arrayObject.paymentsArray().count
}

要恢复行,您需要设置分隔符样式,将其设置为 - 您需要单行。

{
    self.backgroundLabel.hidden = true
    return arrayObject.paymentsArray().count
    self.tableView.separatorStyle = UITableViewCellSeparatorStyle.SingleLine

}