您的位置:首页 > 移动开发 > Swift

MJRefresh简单应用

2016-12-14 11:35 435 查看
       最近这几天一直在研究ios刷新的第三方库MJRefresh,相信很多做开发的朋友都接触过,我用的是swift2.3和OC混编,话不多说,分享一下我的心得吧!

MJRefresh分头部(header)和底部(footer)。在MJRefresh里创建好了一个mj_header和mj_footer,使用这两个属性对MJRefresh的样式进行修改。

在自己的代码里:

self.mytableview.mj_header =

MJRefreshNormalHeader(refreshingTarget: self, refreshingAction:#selector(controller.readdata))//括号里是你读取数据的方法,当然你可以创建一个新的方法添加你的判断逻辑,把这个读取数据的方法也放进去,然后这里括号就写你新创建的方法

self.mytableview.mj_header.beginRefreshing()//调用这个方法开始刷新

如果想要改变刷新时的字体形态,刷新图片等                                                          

let Header = MJRefreshGifHeader (refreshingTarget: self,  refreshingAction:#selector(ViewController.headRefresh))     // 设置各种状态动画图片

Header .setImages([AnyObject]!, forState: <#T##MJRefreshState#>)

 /** 普通闲置状态 */

    MJRefreshStateIdle = 1,

    /** 松开就可以进行刷新的状态 */

    MJRefreshStatePulling,

    /** 正在刷新中的状态 */

    MJRefreshStateRefreshing,

    /** 即将刷新的状态 */

    MJRefreshStateWillRefresh,

    /** 所有数据加载完毕,没有更多的数据了 */

    MJRefreshStateNoMoreData    5种状态的图片随你添加

// 设置header

self.mytableview.mj_header = Header

下拉刷新03-隐藏时间

// 隐藏时间

Header.lastUpdatedTimeLabel.hidden = true

// 隐藏状态

Header.stateLabel.hidden = true

下拉刷新05-自定义文字

// 设置文字

Header .setTitle(<#T##title: String!##String!#>, forState: <#T##MJRefreshState#>)    前边是string类型,后边的type同动画图片设置的type                                                                          

// 设置字体

Header.stateLabel.font = UIFont.systemFontOfSize(50.0)

Header.lastUpdatedTimeLabel.font = UIFont.systemFontOfSize(50.0)//括号里是CGFloat类型,数字随你填

// 设置颜色

  Header.stateLabel.textColor = UIColor.whiteColor()

  Header.lastUpdatedTimeLabel.textColor = UIColor.whiteColor()

(下拉刷新05-自定义文字)     

 footer和header一样                                                                                                    

self.mytableview.mj_footer = MJRefreshBackNormalFooter(refreshingTarget: self, refreshingAction: #selector(ViewController.footRefresh))                                       

 let Footer = MJRefreshBackGifFooter(refreshingTarget: self, refreshingAction:#selector(BankCardViewController.footRefresh) MJRefreshBackGifFooter初始化footer是隐藏在底部                                                                
                                           

 let Footer = MJRefreshAutoGifFooter(refreshingTarget: self, refreshingAction:#selector(BankCardViewController.footRefresh) MJRefreshAutoGifFooter初始化footer是紧贴header下方                                                    

self.mytableview.mj_footer = Footer                  

其他的方法和header没多大区别

在readdata结束时,添加self.endRefresh()用来结束刷新

做一个小小的判断self.mytableview.mj_header.endRefreshing()

        self.mytableview.mj_footer.endRefreshing()

        //判断是否加载完数据(加载的datalist是否等于总条数listcount,如果小于,就可以继续刷新,==就结束刷新)

        if(dataList.count < listCount){

            //上拉继续刷新

            self.mytableview.mj_footer.endRefreshing()

        }else{

            //全部加载完毕

            self.mytableview.mj_footer.endRefreshingWithNoMoreData()

        }

    }  

如果那里有错,欢迎大家指出错误,共同进步!                                                                  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios swift OC