首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UIRefreshControl不工作

UIRefreshControl不工作
EN

Stack Overflow用户
提问于 2017-03-02 20:12:43
回答 2查看 972关注 0票数 0

我的项目仍在使用Swift 2.3,尚未迁移到Swift 3。当我用下面的代码提取表视图时,我可以验证在Debug区域中可以看到刷新的数据,但是它并不反映在表视图中。我在IOS 9和IOS 10上都试过了。

代码语言:javascript
复制
 var refreshControl = UIRefreshControl()

 if #available(iOS 10.0, *) {
    TableView.refreshControl = refreshControl
 } else {
    TableView.addSubview(refreshControl)
 }

 refreshControl.addTarget(self, action: #selector(self.handleRefresh), forControlEvents: UIControlEvents.ValueChanged)

 func handleRefresh(refreshControl: UIRefreshControl) {
     refreshControl.beginRefreshing()

     Search()
     TableView.reloadData()

     refreshControl.endRefreshing()
 }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-02 21:31:20

tableView.reloadData()移动到可以确保search()函数已完成并返回结果的位置。如果这是一个异步函数,那么添加一个完成处理程序,以便知道何时调用reloadData()。然后,您可以像这样调用该函数:

代码语言:javascript
复制
search {
    dispatch_async(dispatch_get_main_queue()) {
        tableView.reloadData()
    }
}

或者,当你乘坐Swift 3

代码语言:javascript
复制
DispatchQueue.main.async {...}
票数 2
EN

Stack Overflow用户

发布于 2017-03-02 20:35:55

尝试在主线程上重新加载tableView。

代码语言:javascript
复制
DispatchQueue.main.async {
self.tableView.reloadData()
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42565057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档