当前位置: 首页 > 工具软件 > MJRefresh > 使用案例 >

MJRefresh简单应用

寿元白
2023-12-01
       最近这几天一直在研究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()
        }
    }  
如果那里有错,欢迎大家指出错误,共同进步!                                                                  
 类似资料: