在 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 中隐藏/显示单元格?的主要内容,如果未能解决你的问题,请参考以下文章

如何在静态 UITableView 中插入/隐藏/显示行?

为 UITableView 中的所有单元格显示自定义按钮

(Swift)如何通过重新加载 UITableView 根据 UITextfield 输入(动画)显示/隐藏单元格?

UITableview Header 隐藏顶部单元格

从 UITableView 隐藏单元格

ios在tableview单元格中显示/隐藏视图