我试图在Swift中切换开关时隐藏/显示静态表行和节头。我能够隐藏行但是当我试图隐藏一个部分标题视图时,当我重新打开切换开关时,另一个开始消失。
这就是我的代码:
@IBAction func toggleSound(sender: UISwitch) {
if(sender.on) {
self.sectionInVisible = false
}
else{
self.sectionInVisible = true
}
let section = 1
let secPath = NSIndexPath(forRow: 1, inSection: 0)
self.tableView.cellForRowAtIndexPath(secPath)?.hidden = sectionInVisible
self.tableView.headerViewForSection(section)?.hidden = sectionInVisible
let numberOfRows = tableView.numberOfRowsInSection(section)
for row in 0..<numberOfRows {
let path = NSIndexPath(forRow: row, inSection: section)
tableView.cellForRowAtIndexPath(path)?.accessoryType = .None
tableView.cellForRowAtIndexPath(path)?.hidden = sectionInVisible
}
self.tableView.reloadData()
}
我错过了什么?我也尝试过更改高度,但我认为它不能用于静态表。
答案 0 :(得分:0)
这种事情是错误的:
self.tableView.cellForRowAtIndexPath(secPath)?.hidden = sectionInVisible
删除行的方法是调用deleteRowsAtIndexPaths
。类似地,对于部分,还有deleteSections
命令。
(您还需要更改基础数据,以便该部分没有这些数据,或者,如果您隐藏整个部分,那么该部分似乎根本不存在。您将,你已经猜到了,用静态表做这件事很麻烦。)