缩小UITableView标头会在标题和单元格之间产生间隙

时间:2018-02-09 23:55:45

标签: ios swift uitableview

我有一个带有标题的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()它将解决问题,但这似乎并不理想,因为它在滚动时会非常快速地调用该方法。

当标题缩小时,如何让单元格上升?

1 个答案:

答案 0 :(得分:2)

如果再次设置属性,表视图应重新计算标题的布局。这样的事情应该这样做:

self.tableView.tableHeaderView = self.tableView.tableHeaderView
相关问题