swift3 tableView刷新数据
在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刷新数据相关推荐
- iOS小技能:解决TableVIew刷新数据带来的界面跳动问题
引言 问题背景: Self-Sizing在iOS11下是默认开启的,Headers, footers, and cells都默认开启Self-Sizing,所有estimated 高度默认值从iOS1 ...
- iOS - UIRefreshControl 刷新数据
前言 NS_CLASS_AVAILABLE_IOS(6_0) __TVOS_PROHIBITED @interface UIRefreshControl : UIControl 1.UIRefresh ...
- 百思不得姐数据刷新数据部分(七)
一 刷新功能图和内部计算原理图 1 刷新功能图: 2 内部计算原理图 二 解析步骤 1 分析整个精华模块 2 真实数据请求部分 3 模型 4 先添加尾部刷新控件 5 再添加头部刷新控件 6 处理刷新业 ...
- Angular的ChangeDetectorRef.detectChanges()实现angularJS的$apply()方法,强制刷新数据渲染
在Javascript代码里,都是按照一定顺序来执行的,当轮到一个代码片段执行的时候,浏览器就只会去执行当前的片段,不会做任何其他的事情.所以有时候一些做得不是很好的网页,当点击了某个东西之后会卡住, ...
- html页面关闭前提示信息,【转】表单提交及关闭当前页面并刷新数据
在DWZ文档中,对于DWZ框架Ajax无刷新表单提交处理流程描述如下: 1. ajax表单提交给服务器 2. 服务器返回一个固定格式json结构 3. js会调函数 ...
- 解决ViewPager缓存导致不能实时刷新数据
ViewPager+Fragment,但是Fragment有个不好或者太好的地方.例如你在ViewPager中添加了三个Fragment,当加载ViewPager中第一个Fragment时,它会默认帮 ...
- datagrid wpf 刷新数据_wpf – 更新数据源时刷新Datagrid
我有一个数据网格,显示一个绑定到DataSource的表,该数据源不断更改时间约束. 如何在更新myDataSource值时刷新数据网格的内容. P.S:我的DataSource表中的值由监控系统更新 ...
- C# 数据库dataGridView刷新数据和主外键判断
本文主要讲诉在使用VS2012+SQL Server数据库做系统中,通常会遇到几个问题.使用dataGridView控件在修改.删除.插入数据后,怎样刷新数据显示操作后的结果.同时在对数据操作时通常会 ...
- 加载(WebView)页面,调JS刷新数据
WebView.loadUrl():加载页面 WebView.loadUrl("javascript:function()");调用JS函数刷新数据
最新文章
- 深入理解Python闭包概念
- go语言编程之字符串操作
- 第13天:提取方法对象
- api接口加密_谈谈API接口开发中的安全性如何解决
- Android之在Activity中动态得到Adapter类中数据
- 线段(信息学奥赛一本通-T1429)
- java继承实现不用每个类都写toString方法
- 说一下你对多态的理解?_如何去理解java中的多态?从jvm角度分析也许让你更清晰...
- zabbix常见配置集合
- 计算机系统动态库修复,xp系统恢复dll动态链接库的修复步骤
- 计算机发送到桌面快捷方式,win10电脑没有发送到桌面快捷方式选项的详细恢复步骤...
- Map获取key值和value值
- 2020-07-28 activeMq 两种模式的测试
- 苏州VS上海:城市化的二个阶段
- 订单系统设计 —— 订单号设计
- 最全的PHP开发Android应用程序
- 四大降维算法的比较和一些理解(PCA、LDA、LLE、LEP)
- 路遥《人生》中经典语录
- simucpp:C++搭建微分方程求解器框架(重写simulink)
- 10分钟内用Ezo和Python构建以太坊Oracle