【发布时间】:2017-02-09 16:40:12
【问题描述】:
我目前正在开发 UITableViewController。我当前的实现包括一个标题视图(白色视图)、一个 UITableView 部分标题(红色视图)和表格视图(灰色)。目前 TableView 样式是分组的,因此当向上滚动以缩小标题视图时,Section Header 会随 TableView 一起滚动。
当标题视图离开屏幕时,我试图将部分标题保留在视图顶部,并允许 UITableViewCells 在部分标题下滚动。目前,一旦 Section Header 到达视图顶部,tableview 就无法向上滚动。任何建议都会非常有帮助
当前代码:
override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return 106.0
}
override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let view1 = UIView(frame: CGRect(x: 0, y: 0, width: tableView.frame.width, height: 106.0))
view1.backgroundColor = UIColor.red
return view1
}
override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 80.0
}
override func scrollViewDidScroll(_ scrollView: UIScrollView) {
let maxOffset = (scrollView.contentSize.height - scrollView.frame.size.height)
if scrollView.contentOffset.y >= maxOffset {
scrollView.contentOffset = CGPoint(x: scrollView.contentOffset.x, y: maxOffset)
}
if scrollView.contentOffset.y >= 35.0 {
scrollView.contentOffset = CGPoint(x: scrollView.contentOffset.x, y: 35.0)
}
}
}
【问题讨论】:
-
你为什么不使用
plain表格视图呢?标题不会在分组表视图中浮动。 -
要实现这个功能,你应该使用 UIViewController。你可以在 UIViewController 中轻松实现这一点,为什么使用 UITableViewController 会使事情复杂化。
-
普通表格视图在 SectionHeader 位于视图中间时不会滚动它。它仍然在同一个地方
-
@Priyansh 这与在 UITableViewController 上使用 UIViewController 无关。 OP 只希望部分标题在表格视图滚动时浮动,这可以通过 .plain 表格视图轻松完成。
-
@ozgur 我正在寻找标题部分,仅当部分标题位于视图顶部时才浮动。 .plain 表视图没有实现这一点
标签: ios iphone swift uitableview uiscrollview