在Swift中刷新后,刷新控件不会滑动屏幕

时间:2017-04-28 00:41:56

标签: swift uitableview uiscrollview uirefreshcontrol

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

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

    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模拟器上进行测试。

1 个答案:

答案 0 :(得分:0)

尝试在主线程中附上 endRefreshing 代码,看看它是否有效:

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