我有一个隐藏和取消隐藏的UITableView,具体取决于变量是否为空。
if listOfTasks.isEmpty {
table.hidden = true
} else {
table.hidden = false
}
这是我的viewDidLoad()
方法。隐藏UITableView工作正常,但取消隐藏它没有。 Here是我的文件,以防你想看看。
提前致谢!
答案 0 :(得分:1)
viewDidLoad()
仅被调用一次。每当表格发生变化时,您都需要取消隐藏table
;因此,改变
func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath){
if (editingStyle == UITableViewCellEditingStyle.Delete){
listOfTasks.removeAtIndex(indexPath.row)
table.reloadData()
if listOfTasks.isEmpty {
table.hidden = true
}
}
}
到
func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath){
if (editingStyle == UITableViewCellEditingStyle.Delete){
listOfTasks.removeAtIndex(indexPath.row)
table.reloadData()
if listOfTasks.isEmpty {
table.hidden = true
} else {
table.hidden = false
}
}
}
答案 1 :(得分:0)
刚刚重新创建了一个代码示例...
if listOfTasks.isEmpty {
table.hidden = true
} else {
table.hidden = false
}
...放置在“ viewDidAppear ”
内部时效果很好override func viewDidAppear(animated: Bool) {
if self.bestRank.isEmpty {
self.tableView.hidden = true
} else {
self.tableView.hidden = false
}
}
当我在Simulator中运行代码时,如果在Array / list中没有任何内容,则会隐藏表,但在List =填充时显示为NOT-hidden。
将代码放在“viewDidAppear”中 - 它将在每次显示屏幕时运行,而不是仅在“viewDidLoad”下运行一次。