【问题标题】:How to display and hide table view cells in swift如何快速显示和隐藏表格视图单元格
【发布时间】:2015-04-16 16:25:32
【问题描述】:

我有一个带有两个不同自定义单元格的 tableView。一个单元格的文本字段数据很少,而另一个单元格的文本字段数据也不同,这里我需要折叠并隐藏每个单元格。我不知道该怎么做。请告诉我。

https://maniacdev.com/2013/03/an-open-source-ios-control-allowing-you-to-create-great-looking-collapsible-lists-without-uitableview

请参考上面的链接,我也想要同样的。

提前致谢

【问题讨论】:

  • 您在说哪些单元格,请提供更多信息并发布一些您所做的代码
  • 已编辑。谢谢@Vinay jain
  • 您能否添加更多详细信息。用这种较少的信息是不可能解决问题的。你到底想做什么,你做了什么。
  • maniacdev.com/2013/03/… 请参考上面的链接,我想在 swift 中也一样。

标签: ios iphone swift tableviewcell


【解决方案1】:

所以你想隐藏你的 UITableViewCell 之一?

我认为最简单的方法是在“行数据数组”中添加更多信息。

例如:

您有 10 个列,并且您想隐藏 4 个特定列。您有一个名为“getRowData”的函数 - 这将返回(当未选择过滤器时)所有 10 行。当您点击一个按钮时,您可以更改您的“getRowData”函数以仅返回您想要的 4 行。

对于上面显示的示例 - 您需要一些基于 UITableViewController 的可折叠列表。

所以你有(在这个例子中)3个主要类别——如果用户点击一个“标题”你想展开这个类别的列表。

因此您可以使用部分 - 为每个类别创建一个部分。然后实现这样的东西:

// 为“激活的类别”创建一个主变量

var enabledCategory:Int = 0 // you could add i base value

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

        let indexPath = tableView.indexPathForSelectedRow();

        enabledCategory = indexPath.row;
....

在此处检查用户单击了哪个部分。如果(例如“0” - 所以第一个,展开这个部分。所以做这样的事情:

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    if(indexPath.section == enabledCategory) {
        return rows // return rows you want to show
    }

您还需要在此处更改行数:

override func numberOfSectionsInTableView(tableView: UITableView) -> Int {

    return 3
}

这应该(在您的示例中)始终为 3。

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

这取决于您的部分 // 类别

【讨论】:

  • 真有趣 =)))))
猜你喜欢
  • 1970-01-01
  • 2018-03-07
  • 1970-01-01
  • 2017-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-18
相关资源
最近更新 更多