博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
swift 之-下拉刷新框架的使用
阅读量:4290 次
发布时间:2019-05-27

本文共 5884 字,大约阅读时间需要 19 分钟。

下拉刷新汇总:https://www.jianshu.com/p/59ca096f0d05

=========系统自带的refresh========

 

  let con:UIRefreshControl=UIRefreshControl.init(frame: CGRect.init(x: 0, y: 0, width: WIDTH, height: 150))

        con.tintColor=UIColor.red//小转圈的颜色

        con.attributedTitle=NSAttributedString.init(string: "shuax")//转圈下面的文字---也可以设置文字的颜色,大小等

        tab.addSubview(con)

        DispatchQueue.main.asyncAfter(deadline: DispatchTime.now()+2) {

    con.endRefreshing()//停止刷新

con.beginRefreshing()//开始刷新

        }

 

===============mjrefresh的使用=============

 

github下载地址:https://github.com/CoderMJLee/MJRefresh

mjrefresh参考:http://www.hangge.com/blog/cache/detail_1406.html

1.下拉刷新*****************简单的使用,不带图片动画   func normalHeaderRefresh(){ let header = MJRefreshNormalHeader()//这个是原生的样式,不能自定义gif图        header.setRefreshingTarget(self, refreshingAction: #selector(pulldownrefresh))        header.setTitle("正在加载", for: .pulling)        header.setTitle("加载完成", for: .refreshing)        tab.mj_header=header}//下拉刷新    @objc func pulldownrefresh(){        print("下拉刷新")        weak var weakSelf = self        //请求轮播数据        requestHomeHeadScrollData()                //请求头条消息        requestFirstTopInfo()        DispatchQueue.main.asyncAfter(deadline: DispatchTime.now()+3) {            weakSelf!.tab.mj_header.endRefreshing()        }    }    2.下拉刷新******************带动动画 //初始化下拉刷新/上拉加载    func initGifMJRefresh(){        let topGifheader = MJRefreshGifHeader()//这个可以设置下拉刷新的图片动画效果        //下拉刷新相关设置        topGifheader.setRefreshingTarget(self, refreshingAction: #selector(pulldownrefresh))        let imageNames = ["bankBlue","bankGreen","bankRed","appstart"]//这个是显示的动画,数组中页可以是单张图片        var idleImages = [UIImage]()        //添加动画图片        for i in 1...3 {            idleImages.append(UIImage(named:imageNames[i-1])!)        }        topGifheader.setImages(idleImages, for: .idle)//普通状态                topGifheader.setImages(idleImages, for: .pulling)//手向下拉的时候                topGifheader.setImages(idleImages, for: .refreshing)//正在刷新     //        topGifheader.lastUpdatedTimeLabel.isHidden = true//隐藏上次更新的时间    //        topGifheader.stateLabel.isHidden = true//隐藏状态文字        topGifheader.setTitle("下拉刷新", for: .idle)        topGifheader.setTitle("正在加载", for: .pulling)        topGifheader.setTitle("加载完成", for: .refreshing)        //将下拉刷新控件与 tableView控件绑定起来        self.tab.mj_header = topGifheader          } //下拉刷新    @objc func pulldownrefresh(){        print("下拉刷新")        weak var weakSelf = self        //请求轮播数据        requestHomeHeadScrollData()                //请求头条消息        requestFirstTopInfo()        DispatchQueue.main.asyncAfter(deadline: DispatchTime.now()+3) {            weakSelf!.tab.mj_header.endRefreshing()        }    }

 

1.上拉刷新*************** //上拉加载    func initNormalAutoFooterRefresh(){         let footer =  MJRefreshAutoNormalFooter()        //上刷新相关设置        footer.setRefreshingTarget(self, refreshingAction: #selector(pullUprefresh))        //self.bottom_footer.stateLabel.isHidden = true // 隐藏文字        //是否自动加载(默认为true,即表格滑到底部就自动加载,这个我建议关掉,要不然效果会不好)        footer.isAutomaticallyRefresh = false        footer.isAutomaticallyChangeAlpha = true //自动更改透明度        //修改文字        footer.setTitle("上拉加载", for: .idle)//普通闲置的状态        footer.setTitle("正在加载中", for: .refreshing)//正在刷新的状态        footer.setTitle("加载完成", for: .noMoreData)//数据加载完毕的状态       tab.mj_footer=footer    }//上拉刷新    @objc func pullUprefresh(){        print("上拉刷新")         weak var weakSelf = self        DispatchQueue.main.asyncAfter(deadline: DispatchTime.now()+3) {            weakSelf!.tab.mj_footer.endRefreshing()        }    }
//上拉加载    func initNormalAutoFooterRefresh(){        let footer =  MJRefreshAutoNormalFooter()        //上刷新相关设置        footer.setRefreshingTarget(self, refreshingAction: #selector(pullUprefresh))        //self.bottom_footer.stateLabel.isHidden = true // 隐藏文字        //是否自动加载(默认为true,即表格滑到底部就自动加载,这个我建议关掉,要不然效果会不好)        footer.isAutomaticallyRefresh = false        footer.isAutomaticallyChangeAlpha = true //自动更改透明度        //修改文字        footer.setTitle("上拉加载", for: .idle)//普通闲置的状态        footer.setTitle("正在加载中", for: .refreshing)//正在刷新的状态        footer.setTitle("加载完成", for: .noMoreData)//数据加载完毕的状态        tab.mj_footer=footer    }        //上拉刷新    @objc func pullUprefresh(){        print("上拉加载")        DispatchQueue.global().asyncAfter(deadline: .now() + 5) { [self] in            tab.mj_footer?.endRefreshing {                print("结束上拉")            }        }    }    //下拉刷新    func pulldownrefresh(){        let header=MJRefreshNormalHeader()        header.setRefreshingTarget(self, refreshingAction: #selector(pullDownrefresh))        header.isAutomaticallyChangeAlpha=true//自动更改透明度        //修改文字        header.setTitle("下拉舒心", for: .idle)//普通闲置的状态        header.setTitle("正在加载中", for: .refreshing)//正在刷新的状态        header.setTitle("加载完成", for: .noMoreData)//数据加载完毕的状态        tab.mj_header=header    }    @objc func pullDownrefresh(){        print("下拉刷新")        DispatchQueue.global().asyncAfter(deadline: .now() + 5) { [self] in            tab.mj_header?.endRefreshing {                print("结束下拉刷新")            }        }    }

===================

GitHub 地址:https://github.com/jcavar/refresher

使用:直接把下载下来的代码中的Refresher文件夹拖入到自己的工程中

 

  //下拉刷新

        tab.addPullToRefreshWithAction {

            print("shauaxin ")

        }

      //下拉刷新自定义view

    

        

//        //GCD操作8秒后

//        DispatchQueue.main.asyncAfter(deadline: DispatchTime.now()+8) {

//            self.tab.stopPullToRefresh()//self.tab.startPullToRefresh()

//        }

 

可以自定义:动画,View

 

==========

github地址:https://github.com/gontovnik/DGElasticPullToRefresh

 

=====================

github地址:https://github.com/gsdios/SDRefreshView

 

===================

github地址:https://github.com/dasdom/BreakOutToRefresh

 

===================

github地址:https://github.com/andreamazz/GearRefreshControl

================ESPullToRefresh======

github地址:https://github.com/eggswift/pull-to-refresh

 

 

=============

github地址:https://github.com/entotsu/PullToBounce

 

转载地址:http://yimgi.baihongyu.com/

你可能感兴趣的文章
微信小程序快速入门
查看>>
Android EditText被软键盘遮盖处理
查看>>
JavaScript 中变量、作用域和内存问题的学习
查看>>
Android Tools Attributes,让布局设计所见即所得
查看>>
FlipDotView——磁翻点阵显示效果
查看>>
浅析回话技术之Session和Cookie
查看>>
20道经典Java面试基础题
查看>>
Android弹窗PopupWindow
查看>>
JavaScript的原型系统是怎样构建起来的
查看>>
控制反转(IoC)-解析与实现
查看>>
Android内存泄露的原因
查看>>
Java并发总结
查看>>
JavaScript筑基篇(二)->JavaScript数据类型
查看>>
干货:Java几种线程池的分析和使用。
查看>>
避免在Java接口中使用数组的3个理由
查看>>
android 自定义带动画的统计饼图
查看>>
入职必备,Android 真实面试题(内有答案)
查看>>
JavaScript 日期处理类库---Moment.js
查看>>
仿斗鱼直播的弹幕效果实现
查看>>
Android(Java)中的Object
查看>>