我刚刚添加了一个占位符标签,以便在我的表视图为空时显示文本,但是我无法弄清楚在添加新单元格后如何关闭背景视图。
这是表格视图在添加单元格后的外观:
这是我用来显示标签的代码:
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
}
}
现在按预期隐藏了消息,但是表视图丢失了单元格之间的分界线。
答案 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
}