Art*_*nko 6 ios uirefreshcontrol swift
刷新轮停止在95%满,只有从屏幕的最顶部到达底部才能刷新.
lazy var refreshControl: UIRefreshControl = {
let refreshControl = UIRefreshControl()
refreshControl.addTarget(self, action:
#selector(VFeedVC.refresh(_:)),
for: .valueChanged)
return refreshControl
}()
override func viewDidLoad() {
self.tableView.addSubview(refreshControl)
}
func refresh(_ sender: Any) {
Metric.sendEvent("RefreshFeed")
self.refreshControl.beginRefreshing()
self.getFeeds(self.user.id)
}
func getFeeds(_ userId: Int) {
VNetwork.getFeeds(userId) { feeds in
self.feeds = feeds
self.tableView.isHidden = self.feeds.count == 0
self.configureCells()
self.refreshControl.endRefreshing()
self.tableView.reloadData()
}
}
Run Code Online (Sandbox Code Playgroud)
这对我在 iOS 11 上有效:
override func viewDidLoad() {
self.tableView.refreshControl = refreshControl
self.tableView.addSubview(refreshControl)
}
Run Code Online (Sandbox Code Playgroud)
另外,您不需要显式告诉刷新控件开始刷新,因此这就足够了:
func refresh(_ sender: Any) {
Metric.sendEvent("RefreshFeed")
self.getFeeds(self.user.id)
}
Run Code Online (Sandbox Code Playgroud)
还要确保在回调中VNetwork.getFeeds(userId) { feeds in您位于主线程上。
| 归档时间: |
|
| 查看次数: |
927 次 |
| 最近记录: |