如何以编程方式滚动到tableViewHeader

时间:2019-09-04 09:49:04

标签: ios swift uitableview

我有一个tableView和一个tableView.tableHeaderView,所以我想scroll到这个view(顶部)。

我正在滚动tableView.scrollToRow(at: IndexPath(row: 0, section: 0), at: .top, animated: true),但这仅滚动到第一行。

如何滚动到tableHeaderView

2 个答案:

答案 0 :(得分:2)

首先,移至本节的第一行

tableView.scrollToRow(at: IndexPath(row: 0, section: 0), at: .top, animated: false)

只需在tableView's 动画块(即

)中将contentOffset CGPoint.zero设置为UIView
UIView.animate(withDuration: 0.2, animations: {
    tableView.contentOffset = .zero
}) { (completed) in
    tableView.reloadData()
}

答案 1 :(得分:1)

发现了这个有用的小扩展!

public extension UIScrollView {
    func scrollToTop(animated: Bool) {
        let desiredOffset = CGPoint(x: 0, y: -contentInset.top)
        setContentOffset(desiredOffset, animated: animated)
    }
}