UIRefresh控制端刷新不起作用

时间:2016-10-25 03:29:09

标签: ios swift uirefreshcontrol

当通过向下滑动桌面视图触发刷新控制时,如果没有互联网连接,则会显示警告,并且刷新控制预计会结束刷新,但即使添加在主线程中也不会结束刷新

awk 'length($1)==3 && length($2)==3 { 
  gsub(/[^ABCD]/, "", $5);
  print $1, $2 "\t" $5
}' file.txt

4 个答案:

答案 0 :(得分:4)

这样做的简单方法是

DispatchQueue.main.async(execute: {
     self.jobTableView.reloadData()
     self.refreshControl.endRefreshing()
     self.activityIndicator.stopAnimating()
     self.refreshControl.setContentOffset(CGPoint.zero, animated: true)

})

答案 1 :(得分:2)

WebView leadBoltAd = findViewById(R.id.leadBoltBanner); String leadBoltAdHtmlString = "<script type=\"text/javascript\"src=\"http://ad.leadbolt.net/show_app_ad.js?section_id=1111111111\"></script>"; leadBoltAd.getSettings().setJavaScriptEnabled(true); leadBoltAd.setBackgroundColor(Color.TRANSPARENT); leadBoltAd.loadData(leadBoltAdHtmlString,"text/html","utf-8"); 设为UITableView contentOffset

Swift 3.0

zero

答案 2 :(得分:1)

请在主帖中添加所有UI程序。

成功阻止=&gt;将您的代码转换为:

if let jobs = model{
     if top{
        self.jobs = jobs
     }else{
        self.jobs += jobs
     }
     self.pageNumber += 1                       
}

DispatchQueue.main.async(execute: {
     self.refreshControl.endRefreshing()
     self.activityIndicator.stopAnimating()
     self.jobTableView.reloadData()
})

失败阻止:

DispatchQueue.main.async(execute: {
     self.refreshControl.endRefreshing()
     self.activityIndicator.stopAnimating()
     self.jobTableView.reloadData()
})

无论成功与否,您的所有UI进度都必须包含在主线程中。我认为您忘记在Success Block中的主线程中包含UI更改。或者您可以这样做,

Alamofire.request(url, method: .get).responseJSON { (response) in
     if response.result.isSuccess{
          ...
     }else{
          ...
     }
     DispatchQueue.main.async(execute: {
          self.refreshControl.endRefreshing()
          self.activityIndicator.stopAnimating()
          self.jobTableView.reloadData()
     })
}

看看:

RefreshControlDemo [Swift 3 Xcode 8]

答案 3 :(得分:0)

我发现同样的问题

如果其他用途self.refresh.endRefreshing()不起作用

我介绍此代码-> UIRefreshControl().endRefreshing()替换为self.refresh.endRefreshing()状态

 DispatchQueue.main.async {

       UIRefreshControl().endRefreshing()
       self.yourTableView.contentOffset = CGPoint.zero

 }

谢谢