UIRefreshControl 不清除表格视图
Posted
技术标签:
【中文标题】UIRefreshControl 不清除表格视图【英文标题】:UIRefreshControl doesn't clear the tableview 【发布时间】:2017-06-30 15:51:30 【问题描述】:我正在尝试设置拉动刷新功能。刷新工作正常。 我按以下方式设置了 refreshControl:
let refreshControlAnimation = UIRefreshControl()
self.refreshControl?.addTarget(refreshControlAnimation, action: #selector(handleRefresh(refreshControl:)), for: UIControlEvents.valueChanged)
self.tableView?.addSubview(refreshControlAnimation)
我设置了一个目标并通过拉取执行handleRefresh函数。
func handleRefresh(refreshControl: UIRefreshControl)
DataController().fetchDataLive(mode: "get", completionHandler: success in
self.tableView.reloadData()
refreshControl.endRefreshing()
)
但是,如果我拉动刷新动画会执行,但它并没有在它应该结束的时间结束。正如您在图片上看到的,动画仍在节标题下执行。
但它应该尽快清除,就像这张图片一样。
为什么没有早点调用我的 endRefreshing 函数?
【问题讨论】:
你使用 UITableViewController 吗? 是的,我使用 TableViewController 你执行主队列中的代码吗? @GaétanZ 我正在考虑这个问题。所以你的意思是它有可能重新加载表格视图以快速? 其实我不是很理解你的问题。但是不在主队列上执行 UI 代码会导致不可预知的行为。在获取数据后忘记调度异步是很常见的。 【参考方案1】:有你的问题。刷新控件不应该作为子视图添加,因为 swift 已经做了将其添加到 tableview/tableviewcontrollers 的规定。
使用:-
self.tableView.refreshControl = yourRefreshControl
【讨论】:
哦,是的,刚刚知道了。通过创建一个额外的变量来解决它。但是你的版本也可以。一开始不太明白它的概念。以上是关于UIRefreshControl 不清除表格视图的主要内容,如果未能解决你的问题,请参考以下文章
iOS UIRefreshControl 在单视图应用程序中,没有表
类似于 UIRefreshControl 将隐藏的 UIView 添加到 UITableView
与单元格一起移动的 TableView 上的 UIRefreshControl