swift3 tableView刷新数据

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


image.png

这是苹果官方解释
实例化一个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()
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

二、实现上拉刷新
原理:当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 - 1
    if row < 0 || section < 0 {
        return
    }
    //取最后一节的最大行数
    let maxRowCount = tableView.numberOfRows(inSection: section) - 1
    if row == maxRowCount && indexPath.section == section && !isPullUp{
        print("进行上拉刷新")
        isPullUp = true

        //刷新数据
        loadData()//在刷新数据的方法中刷新完成之后需要将刷新标记改为false
    }
}

作者:EIamor
来源:CSDN
原文:https://blog.csdn.net/eiamor/article/details/72629356
版权声明:本文为博主原创文章,转载请附上博文链接!

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,679评论 1 32
  • 那一年,满园樱花早早的凋谢,漫天的白花瓣把她的梦跟青春稀释的那么遥远。 那一年,她跟我说她丢掉了自己薄如蝉翼的未来...
    衣诺双鱼阅读 1,201评论 0 3
  • 桓温在临死前,他的弟弟桓冲曾经问他今后谢安和王坦之应该担任什么职务,桓温说:“他们不由你来安排。”这话的意思是,自...
    寒七琪阅读 433评论 1 2
  • 恭迎大姨妈! 我不知道我的饮食作息不规律、压力大都到了反应到生理上的地步!惶惶不得终日的日子结束了,新一轮的挣扎又...
    不等等阅读 110评论 0 0
  • 不知从何时开始民间流行一个风俗,在正月十四这一天夜里,青年男女要趁着夜色的掩护去别人家地里去“偷青”,新长出的麦苗...
    爱婷_69e6阅读 551评论 0 2

友情链接更多精彩内容