Swift - UITableView没有取消隐藏

时间:2016-06-04 17:03:03

标签: swift uitableview

我有一个隐藏和取消隐藏的UITableView,具体取决于变量是否为空。

if listOfTasks.isEmpty {
    table.hidden = true
} else {
    table.hidden = false
}

这是我的viewDidLoad()方法。隐藏UITableView工作正常,但取消隐藏它没有。 Here是我的文件,以防你想看看。

提前致谢!

2 个答案:

答案 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”下运行一次。