我有一个带有标题的UITableView
,当我向下滚动时,我正在收缩,但它在标题和单元格之间创建了一个间隙。
当前代码:
func moveLogoBarUp(_ scrollView: UIScrollView) {
self.tableView.bounces = true
let scrollDiff = self.tableView.contentOffset.y - self.previousScrollOffset
let newHeight = (self.tableView.tableHeaderView?.frame.height)! - abs(scrollDiff)
if newHeight <= self.tableHeaderCollapsedHeight {
self.tableView.tableHeaderView?.frame.size.height = self.tableHeaderCollapsedHeight
} else {
self.logoBarTopConstraint.constant -= abs(scrollDiff)
self.tableView.tableHeaderView?.frame.size.height = newHeight
self.tableView.contentOffset = CGPoint(x: self.tableView.contentOffset.x, y: self.previousScrollOffset)
self.previousScrollOffset = scrollView.contentOffset.y
//self.tableView.reloadData()
}
}
注意:如果我使用self.tableView.reloadData()
它将解决问题,但这似乎并不理想,因为它在滚动时会非常快速地调用该方法。
当标题缩小时,如何让单元格上升?
答案 0 :(得分:2)
如果再次设置属性,表视图应重新计算标题的布局。这样的事情应该这样做:
self.tableView.tableHeaderView = self.tableView.tableHeaderView