gpt4 book ai didi

ios - Swift 4 Refresh Control不流畅但总是跳

转载 作者:行者123 更新时间:2023-11-28 13:45:47 25 4
gpt4 key购买 nike

我有一个UIViewController,里面有一个tableView。我添加了一个 RefreshControl。但是我拉的时候,它总是跳几下,一点都不流畅,一点也不连续。

我使用的是 Swift 4 和 Xcode 10.1。

class ItemsController: UIViewController, UITableViewDelegate, UITableViewDataSource, UITextViewDelegate, ItemCellDelegate {
......
lazy var refreshControl: UIRefreshControl = {
let refreshControl = UIRefreshControl()
refreshControl.addTarget(self, action:
#selector(handleRefresh(_:)),
for: UIControl.Event.valueChanged)
refreshControl.tintColor = UIColor.lightGray

return refreshControl
}()
......
override func viewDidLoad() {
// Refresh
self.tableView.refreshControl = self.refreshControl
}
......
@objc func handleRefresh(_ refreshControl: UIRefreshControl) {
loadData()
self.tableView.reloadData()
refreshControl.endRefreshing()
}
......
}

最佳答案

我也遇到过这样的问题。您可以使用以下方法:

  1. 像这样更改您的handleRefresh 方法:

    @objc func handleRefresh(_ refreshControl: UIRefreshControl) {
    if !tableView.isDragging {
    refresh() // refresh is another method for your reloading jobs
    }

    }
  2. 添加刷新方法。

    func refresh() {
    self.refreshControl.endRefreshing()
    self.tableView.reloadData()
    }
  3. 最后您需要实现scrollViewDidEndDragging。如果下拉得足够远,refreshControl 将会刷新,因此调用 refresh。否则,您要么下拉得不够远,要么拖到表格的不同部分,要么拖得太快以至于 refreshControl ValueChanged 事件尚未触发,它将在那里刷新表格。

    func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
    if refreshControl.isRefreshing == true {
    refresh()
    }
    }

关于ios - Swift 4 Refresh Control不流畅但总是跳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55402810/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com