在 TableView 标题下放置拉动以刷新控件

Posted

技术标签:

【中文标题】在 TableView 标题下放置拉动以刷新控件【英文标题】:Put Pull to Refresh Control under TableView Header 【发布时间】:2016-07-26 12:38:42 【问题描述】:

我已将 headerView 附加到 UITableView。而且我还想用拉来刷新tableview。 我已使用以下代码将 headerview 附加到 tableview:

tblView.tableHeaderView = headerView

并将 redresh 控件用作:

var refreshControl: UIRefreshControl!
refreshControl = UIRefreshControl()
refreshControl.attributedTitle = NSAttributedString(string: "Pull to refresh")
refreshControl.addTarget(self, action: #selector(self.refresh(_:)), forControlEvents: UIControlEvents.ValueChanged)

let tableController = UITableViewController()
self.addChildViewController(tableController)
tableController.tableView = self.tblView
tableController.refreshControl = self.refreshControl

现在的问题是当我拉下 tableview refreshcontrol 显示但我的标题视图位置也随着反弹效果而变化。我不想在下拉时更改标题位置我想在标题视图下显示刷新控件。 我的标题视图和刷新控件显示在屏幕截图中。我希望标题视图的位置与导航栏静态连接,但是当用户向上滚动时,标题视图也必须滚动。

【问题讨论】:

【参考方案1】:

1)在uiviewcontroller中添加header view而不是tableview的headerview,

2)你可以改变headerframe与tableView contentoffset的scrollView一致,有点复杂

3)github.com/CoderJackyHuang/StickyUpDownDemo这个demo你可以学习解决你的问题

【讨论】:

以上是关于在 TableView 标题下放置拉动以刷新控件的主要内容,如果未能解决你的问题,请参考以下文章

从 iOS 13 中的呈现模式拉动以刷新表格视图不起作用

工作拉动以禁用反弹刷新

UIRefreshControl 再次拉动时出现多次

UITableView:刷新完成后强制“释放tableview”

拉动刷新后,带有 UiRefreshControl 的 Tableview 卡住了

一段时间后结束表格视图的刷新