UIRefreshControl 在 uitableview 中重叠 headerview

UIRefreshControl overlapping headerview in uitableview

我的 UIViewController 中有一个 UITableView 并且添加了一个 UIRefreshControl 如下:

lazy var refreshControl: UIRefreshControl = {
    let refreshControl = UIRefreshControl()
    refreshControl.addTarget(self, action: #selector(ListViewController.handleRefresh), for: UIControlEvents.valueChanged)

    return refreshControl
}()

 override func viewDidLoad() {
        super.viewDidLoad()
        self.tableView.addSubview(self.refreshControl)
 }

效果很好,但在与 header 视图重叠的地方会产生令人讨厌的 UI 效果。

我试过设置 frame heightcontentInset 但都没有用。

我发现我必须延迟 UIRefreshControl 关闭才能使 UI 正常运行。

这对我来说可能非常独特,但我发布它以防万一。

let when = DispatchTime.now() + 0.5 // change to desired number of seconds
DispatchQueue.main.asyncAfter(deadline: when) {
     refreshControl.endRefreshing()
}