在 UITableView 中隐藏/显示单元格?
Posted
技术标签:
【中文标题】在 UITableView 中隐藏/显示单元格?【英文标题】:Hide/show cells in UITableView? 【发布时间】:2015-06-25 09:57:49 【问题描述】:我在 IB 中创建了一个 UITableView。此视图包含 5 个部分,每个部分包含一些单元格。某些部分中的第一个单元格为最终用户提供了显示/隐藏属于同一部分的其余单元格的选项。
到目前为止我的代码:
import UIKit
class SettingsVC: UITableViewController
@IBOutlet var showCallForwardSwitch: UISwitch?
override func viewDidLoad()
super.viewDidLoad()
@IBAction func toggleValueChanged(sender: UISwitch)
if showCallForwardSwitch!.on
println("switch is on")
else
println("switch is off")
tableView.reloadData()
所以只有一个 IBOutlet 和一个 IBAction。我可以通过 toogleValueChanged 函数获取事件,但是我不知道从现在开始该怎么做。我需要使用哪些方法?
【问题讨论】:
【参考方案1】:override func tableView(tableView:UITableView, heightForRowAtIndexPath indexPath:NSIndexPath)->CGFloat
let cell:DetailCell = self.tableView.cellForRowAtIndexPath(indexPath) as DetailCell // ????????
var height:CGFloat = 84.0;
if ("toggel on")
height = 84.0;
else
height = 0.0;
return height;
【讨论】:
什么是DetailCell?你怎么知道你在正确的部门工作?【参考方案2】:您不想因为一个部分而重新加载整个 tableView。我建议使用deleteRowsAtIndexPaths(_:withRowAnimation:)
只保留第一个单元格,以便用户能够再次显示该部分的其余部分。更新您的数据源并使用一些标志,以便您知道不显示哪个单元格。
【讨论】:
以上是关于在 UITableView 中隐藏/显示单元格?的主要内容,如果未能解决你的问题,请参考以下文章