在UITableViewController中存在一个刷新控件refreshController,利用这个刷新控件可以实现对tableView数据的刷新。
一、实现下拉刷新
1、实例化一个refreshController

实例化一个refreshController调用的是init()这个构造函数,因为在使用这个构造函数的时候会默认生成默认的一个frame。
2、将refreshController添加到tableView上
由于refreshController是下拉实现刷新的,所以可以添加到tableView上
3、添加监听方法
refreshController下拉会触发 UIControlEventValueChanged 事件
4、数据刷新完毕需要停止刷新控件的动画
endRefreshing()

//设置刷新控件refreshController = UIRefreshControl()tableView?.addSubview(refreshController!)//添加监听方法refreshController?.addTarget(self, action: #selector(loadData), for: .valueChanged)//设置刷新控件的渲染颜色refreshController?.tintColor = .orange//刷新方法
func loadData(){........................//刷新完毕停止动画refreshController?.endRefreshing()}

二、实现上拉刷新
原理:当tableView被滑动到最后一行的时候刷新数据
1、定义一个需要实现上拉刷新的标记
用来标记是否已经滑动到了最后一行
2、如果滑动到了最后一行就进行数据的刷新操作
若要实现无缝刷新最好在willDisplaycell中实现

func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {// 1. 判断是否是最后一行 indexPath.row = max  , indexPath.section = max// 取出当前的行数let row = indexPath.row// 取出最大节数let section = tableView.numberOfSections - 1if row < 0 || section < 0 {return}//取最后一节的最大行数let maxRowCount = tableView.numberOfRows(inSection: section) - 1if row == maxRowCount && indexPath.section == section && !isPullUp{print("进行上拉刷新")isPullUp = true//刷新数据loadData()//在刷新数据的方法中刷新完成之后需要将刷新标记改为false}}

swift3 tableView刷新数据相关推荐

  1. iOS小技能:解决TableVIew刷新数据带来的界面跳动问题

    引言 问题背景: Self-Sizing在iOS11下是默认开启的,Headers, footers, and cells都默认开启Self-Sizing,所有estimated 高度默认值从iOS1 ...

  2. iOS - UIRefreshControl 刷新数据

    前言 NS_CLASS_AVAILABLE_IOS(6_0) __TVOS_PROHIBITED @interface UIRefreshControl : UIControl 1.UIRefresh ...

  3. 百思不得姐数据刷新数据部分(七)

    一 刷新功能图和内部计算原理图 1 刷新功能图: 2 内部计算原理图 二 解析步骤 1 分析整个精华模块 2 真实数据请求部分 3 模型 4 先添加尾部刷新控件 5 再添加头部刷新控件 6 处理刷新业 ...

  4. Angular的ChangeDetectorRef.detectChanges()实现angularJS的$apply()方法,强制刷新数据渲染

    在Javascript代码里,都是按照一定顺序来执行的,当轮到一个代码片段执行的时候,浏览器就只会去执行当前的片段,不会做任何其他的事情.所以有时候一些做得不是很好的网页,当点击了某个东西之后会卡住, ...

  5. html页面关闭前提示信息,【转】表单提交及关闭当前页面并刷新数据

    在DWZ文档中,对于DWZ框架Ajax无刷新表单提交处理流程描述如下: 1.       ajax表单提交给服务器 2.       服务器返回一个固定格式json结构 3.       js会调函数 ...

  6. 解决ViewPager缓存导致不能实时刷新数据

    ViewPager+Fragment,但是Fragment有个不好或者太好的地方.例如你在ViewPager中添加了三个Fragment,当加载ViewPager中第一个Fragment时,它会默认帮 ...

  7. datagrid wpf 刷新数据_wpf – 更新数据源时刷新Datagrid

    我有一个数据网格,显示一个绑定到DataSource的表,该数据源不断更改时间约束. 如何在更新myDataSource值时刷新数据网格的内容. P.S:我的DataSource表中的值由监控系统更新 ...

  8. C# 数据库dataGridView刷新数据和主外键判断

    本文主要讲诉在使用VS2012+SQL Server数据库做系统中,通常会遇到几个问题.使用dataGridView控件在修改.删除.插入数据后,怎样刷新数据显示操作后的结果.同时在对数据操作时通常会 ...

  9. 加载(WebView)页面,调JS刷新数据

    WebView.loadUrl():加载页面 WebView.loadUrl("javascript:function()");调用JS函数刷新数据

最新文章

  1. 深入理解Python闭包概念
  2. go语言编程之字符串操作
  3. 第13天:提取方法对象
  4. api接口加密_谈谈API接口开发中的安全性如何解决
  5. Android之在Activity中动态得到Adapter类中数据
  6. 线段(信息学奥赛一本通-T1429)
  7. java继承实现不用每个类都写toString方法
  8. 说一下你对多态的理解?_如何去理解java中的多态?从jvm角度分析也许让你更清晰...
  9. zabbix常见配置集合
  10. 计算机系统动态库修复,xp系统恢复dll动态链接库的修复步骤
  11. 计算机发送到桌面快捷方式,win10电脑没有发送到桌面快捷方式选项的详细恢复步骤...
  12. Map获取key值和value值
  13. 2020-07-28 activeMq 两种模式的测试
  14. 苏州VS上海:城市化的二个阶段
  15. 订单系统设计 —— 订单号设计
  16. 最全的PHP开发Android应用程序
  17. 四大降维算法的比较和一些理解(PCA、LDA、LLE、LEP)
  18. 路遥《人生》中经典语录
  19. simucpp:C++搭建微分方程求解器框架(重写simulink)
  20. 10分钟内用Ezo和Python构建以太坊Oracle

热门文章

  1. 面试了8家软件公司测试岗位,面试题大盘点,我真的尽力了。
  2. 怎么修改FTP服务器绑定的IP地址
  3. M10淮海西路施工 沪公交138路26路绕道
  4. 领导:“我们没有加班费,都是自愿加班的!”
  5. CDR2020 不能移动群组里面的POWERCLIP图片解决办法
  6. XShell的使用方法
  7. 手机端调试h5页面利器插件
  8. Apache POI工作簿
  9. Android5.0_camera2Api
  10. 喜报|众享比特入选甲子光年【2022中国元宇宙最具商业潜力科技企业榜单】