如何防止表格视图部分头部在滚动时卡住?
Posted
技术标签:
【中文标题】如何防止表格视图部分头部在滚动时卡住?【英文标题】:How to prevent tableview section head from sticking while scrolling? 【发布时间】:2017-11-17 22:02:30 【问题描述】:我有一个包含许多部分的表格视图。我正在使用一个实际的 tableview 单元格,我将其出列用作自定义节标题。我遇到的问题是,当我将部分标题“粘”到表格顶部时,直到出现下一部分。
我怎样才能防止这种情况发生并真正让它像往常一样向上滚动?
这是我的代码
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?
if section == 3
let cell = tableView.dequeueReusableCell(withIdentifier: "headerCell") as! HeaderTableViewCell
return cell
return UIView()
【问题讨论】:
UITableView with fixed section headers的可能重复 它有点帮助,但我不希望我的 tableview 被分组,因为它看起来不同(有点像设置应用程序)。 【参考方案1】:执行以下步骤。
来自@IB
-
选择您的 tableView
转到属性检查器
查找样式属性下拉菜单,默认为
Plain
将其更改为Grouped
或者,如果您正在以编程方式创建 TableView,请使用
let tableView = UITableView(frame: YourFrame, style: .Grouped)
【讨论】:
@MassimoPavanel 我相信有一天你会为我做同样的事情:)【参考方案2】:将 UITableViewStyle 更改为 UITableViewStyleGrouped。
【讨论】:
【参考方案3】:将UITableViewStyle
设置为UITableViewStyleGrouped
,标题将随着单元格向上滚动。
和
func tableView(_ tableView: UITableView,
heightForFooterInSection section: Int) -> CGFloat
return 0.000001;
【讨论】:
【参考方案4】:一些可能的解决方案:
-
如果您只有一个部分,请将 Tableview Header 属性设置为您想要设置为 Section Header 的 UIView。
如果您有多个部分,请将每个部分的行数更改为(该部分的行数 + 1)并将第 0 个索引处的行作为标题。需要一些手工编码。
将您的 tableview 更改为 grouped,需要重新设计 UI,使设计看起来类似于普通的 tableview 单元格。
【讨论】:
【参考方案5】:步骤一:去Mainstoryboard
第二步:点击你的Tableview
第三步:去Attribute Inspector
Step4:找到Style Attribute
下拉框,默认为Plain
Step5:改成Grouped
【讨论】:
【参考方案6】:您应该使用UITableViewCell
而不是UIHeaderViewCell
。将节标题高度设为 0,并且对于该节中的每个第 0 个项目,显示一个带有标题的 UITableViewCell
【讨论】:
以上是关于如何防止表格视图部分头部在滚动时卡住?的主要内容,如果未能解决你的问题,请参考以下文章
CollapsingToolbarLayout正在滚动并卡住