如何使UITableView的第一行成为节的标题?

时间:2015-04-05 13:43:36

标签: ios uitableview swift

我有UITableView个自定义单元格。我希望第一行始终可见。由于我只有一段,我想过制作一个标题,但在这种情况下,我真的不知道怎么做?

是否可以使用相同的手势识别器从第一行创建标题,行后面的相同dataSource,简单地说,标题与第一行完全相同,就好像该行被压缩到tableView的顶部一样?

2 个答案:

答案 0 :(得分:1)

您应该在表格视图外使用标题或单独的视图。您可以使用相同的手势(通常,但不是删除)和数据源。

如果你想要它,你可以使用2个表视图 - 第一个包含一个部分和一个行,第二个包含所有其他数据。如果您的数据源在视图控制器中以类似的方式分解,那将是最简单的。

在任何一种情况下,你都可以达到你想要的效果,但不是通过轻弹开关,你需要添加一些逻辑和不同的视图来实现它。

答案 1 :(得分:1)

如果您想制作一个固定在顶部的静态单元格,但在其他方面与其他单元格相同,您只需在numberOfRowsInSection

中添加一个静态单元格即可。
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return dataSource.count + 1
}

然后,当您显示单元格时,请检查行号并始终将第一行设置为包含静态标题内容。

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    if indexPath.row == 0 {
        // Create or set static cell content.
    }
}

另一种方法是创建自定义节标题并使用viewForHeaderInSection

进行设置
override func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
    if section == 0 {
        var view = UIView()
        view.backgroundColor = UIColor.blueColor()
        return view
    }
    return nil
}