【发布时间】:2017-07-22 17:56:39
【问题描述】:
我的项目仍在使用 Swift 2.3,尚未迁移到 Swift 3。当我使用以下代码下拉表格视图时,我可以验证在调试区域中可以看到刷新的数据,但它不会反映在表格视图上。我在 IOS 9 和 IOS 10 上都试过了。
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()
}
【问题讨论】:
-
你的 search() 函数是异步的吗?如果是这样,
reloadData()方法可能会在 search() 完成之前运行。如果它是异步的,请尝试将reloadData()和endRefreshing调用移动到 search() 并确保它们在搜索实际完成运行后运行..
标签: ios swift pull-to-refresh uirefreshcontrol