【问题标题】:refreshControl (pull to refresh) laggy?refreshControl(拉动刷新)滞后?
【发布时间】:2018-04-03 21:16:54
【问题描述】:

为什么我的表格视图的刷新控制滞后?正常时,您可以看到圆圈围绕 360 度移动,但不是时,它只是冻结 - 刷新有效,但滞后。当我刷新它 x 次时它并不滞后。但是当我离开视图控制器(比如说 A)并转到另一个视图控制器,然后创建一个新的 A 时,刷新控制会滞后。这是我的刷新控件代码:

// Class instance
private var refreshControl = UIRefreshControl()

这就是我的设置方式:

// In viewDidLoad()
refreshControl = UIRefreshControl()
refreshControl.attributedTitle = NSAttributedString(string: "Pull to refresh")
refreshControl.addTarget(self, action: #selector(refreshGroups(_:)), for: .valueChanged)
tableView.refreshControl = refreshControl // >= iOS 10.0

refreshGroups 只是获取数据并调用tableView.reloadData()

编辑

编辑 2

【问题讨论】:

  • 滞后时会发生什么?它只是根本不动或移动缓慢?另外,它只是关于刷新控制吗?或者您是否看到页面中的其他一些元素也冻结了?
  • 圆圈完全不动——即使刷新本身正在工作。页面中没有其他元素冻结。我正在使用 firebase 获取数据,然后更新主队列上的 UI。

标签: ios swift pull-to-refresh


【解决方案1】:

我也遇到过这个问题,并从其他人那里听说过。帮助我和他们的解决方案是创建一个UITableViewController 实例并将您的刷新控制分配给它。注意:表格视图控制器是以编程方式创建的,仅用于刷新控制。

代码可能如下所示:

将这些放入类的全局范围内:

let tableViewController = UITableViewController()
let refreshControl = UIRefreshControl()

并将这些发送给viewDidLoad 或您进行设置的任何地方:

tableViewController.tableView = yourTableView // I assume you have a table view there.
tableViewController.refreshControl = refreshControl

其余的都应该像往常一样,像平常一样处理刷新控制。

希望对您有所帮助!如果没有,请评论。

答案已更新

【讨论】:

  • 不,它不起作用。检查我的编辑?也许这会澄清一些事情。
  • 那么对不起。顺便说一句,添加视频/gif 会很棒!
  • 我加了gif,你能看一下吗?
  • @MichaelHsu 是自定义导航栏吗?另请检查 Storyboard 中表格视图的约束
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-30
  • 1970-01-01
  • 2011-07-05
相关资源
最近更新 更多