在Swift中刷新后刷新控件不滑动屏幕备份

Posted

技术标签:

【中文标题】在Swift中刷新后刷新控件不滑动屏幕备份【英文标题】:Refresh control not sliding screen back up after refreshing in Swift 【发布时间】:2017-04-28 00:41:56 【问题描述】:

我在我的表格视图控制器中添加了一个刷新控件,当我向下滑动时,会出现刷新动画并且我的刷新代码会运行。然而,在它完成刷新(旋转动画消失)后,我向下滑动的表格不会向上滚动,并且基本上有空白区域。

这是我用来实现刷新控件的代码。

    refreshControl = UIRefreshControl()
    refreshControl.backgroundColor = UIColor.white

    refreshControl.addTarget(self, action: #selector(HomeViewController.refresh), for: UIControlEvents.valueChanged)
    if #available(ios 10.0, *) 
      tableView.refreshControl = refreshControl
     else 
      tableView.backgroundView = refreshControl
    

这是我的刷新功能

func refresh() 
    Feed.query(params)  feeds, error in
      self.refreshControl.endRefreshing()
      if error == nil 
        self.oldIndex = nil
        self.feeds = feeds
        self.scrollViewDidScroll(self.tableView)
        self.tableView.reloadData()
        self.edgesForExtendedLayout = []
        self.checkIfEmpty()
       else 
        Alert(view: self).show(error!)
      
    
  

从通话中获取数据后,我将结束刷新。谢谢!我目前正在 iOS 10.2 模拟器上进行测试。

【问题讨论】:

尝试在主线程中包含你的 endRefreshing 代码,看看它是否有效:DispatchQueue.main.async self.refreshControl.endRefreshing() 非常感谢!那行得通。如果您想获得荣誉,请将其添加为答案,我将选择它作为最佳答案。 【参考方案1】:

尝试将您的 endRefreshing 代码包含在 主线程 中,看看它是否有效:

DispatchQueue.main.async self.refreshControl.endRefreshing()

【讨论】:

以上是关于在Swift中刷新后刷新控件不滑动屏幕备份的主要内容,如果未能解决你的问题,请参考以下文章

移动端touch实现下拉刷新

如何避免在带有 Swift 4 的 iOS 11 中使用带有刷新控件的 @objc?

Swift - 在刷新控件中禁用默认重新加载表视图

mysql 不停机 短时间锁表 备份 主备同步 新增备份机器

解决下拉刷新控件和ScrollVIew的滑动冲突问题。

我的电脑为啥一刷新就闪一下蓝屏