如何防止tableview部分头在滚动时粘住?

问题描述 投票:0回答:7

我有一个包含许多部分的表格视图。我正在使用一个实际的表格视图单元格,我将其出队以用作自定义节标题。我遇到的问题是当我将部分标题“粘”到表格顶部直到出现下一部分时。

如何防止这种情况发生并使其像平常一样向上滚动?

这是我的代码

func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
    if section == 3 {
        let cell = tableView.dequeueReusableCell(withIdentifier: "headerCell") as! HeaderTableViewCell
        return cell
    }
    return UIView()
}
ios swift uitableview
7个回答
28
投票

执行以下步骤。

来自@IB

  1. 选择您的表视图
  2. 转到属性检查器
  3. 查找样式属性下拉菜单,默认为
    Plain
  4. 更改为
    Grouped

或者如果您要创建 TableView 以编程方式使用

let tableView = UITableView(frame: YourFrame, style: .Grouped)

4
投票

将 UITableViewStyle 更改为 UITableViewStyleGrouped。


3
投票

UITableViewStyle
设置为
UITableViewStyleGrouped
,标题将随单元格一起向上滚动。 和

func tableView(_ tableView: UITableView, 
heightForFooterInSection section: Int) -> CGFloat
{
    return 0.000001;
}

2
投票

一些可能的解决方案:

  1. 如果只有一个部分,则将 Tableview 标题属性设置为要设置为部分标题的 UIView。
  2. 如果有多个部分,请将每个部分的行数更改为(该部分的行数 + 1),并将第 0 个索引处的行作为标题。需要一些手工编码。
  3. 将您的表格视图更改为分组,将需要重新设计 UI,以便设计看起来类似于普通的表格视图单元格。

2
投票

第1步:前往

Mainstoryboard

第二步:点击您的

Tableview

第三步:前往

Attribute Inspector

第四步:找到

Style Attribute
下拉菜单,默认为
Plain

Step5:将其更改为

Grouped

enter image description here


0
投票

您应该使用

UIHeaderViewCell
,而不是
UITableViewCell
。将节标题高度设置为 0,并且对于该节中的每第 0 个项目,显示一个带有标题的
UITableViewCell


0
投票

如果您以编程方式创建了 TableView,则可以将其分组到首字母缩写本身中。所以节标题不会粘住。

let tableView = UITableView(frame: .zero, style: .grouped)
© www.soinside.com 2019 - 2024. All rights reserved.