如何在swift中显示和隐藏表格视图单元格

时间:2015-02-16 07:45:49

标签: ios iphone swift tableviewcell

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

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

请参考上面的链接,我想在swift中也一样。

提前致谢

1 个答案:

答案 0 :(得分:4)

所以你想要隐藏你的一个UITableViewCells?

我认为最简单的方法是向你的行数据阵列添加更多信息"。

例如:

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

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

所以你有(在这个例子中)3个主要类别 - 如果用户点击一个"标题"您想要扩展此类别的列表。

所以你可以使用Sections - 为每个Category创建一个Section。然后实现这样的事情:

//为您的"激活的类别"创建一个主变量

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 {

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