基于 MJRefresh 第三方的Swift二次封装

 不说话,先上demo链接(有用的给个✨),还有一个效果图(腾讯没实名,就算了吧,想看的可以下载 demo 来看)

在使用 MJRefresh 的时候,大家可能都会发现使用起来比较麻烦,每个页面都需要计算页数,所以就封装了一个来分享一下

我主要说一下如何使用吧,如果想了解怎么实现的,可以下载 demo 来看

总的来说,其实就是封装成为一个 manager,需要先定义一下属性

    var orderManager: ScrollViewRefreshManager!

    var orderArr: [Model] {

        iforderManager==nil{

            return[Model]()

        }else{

            return orderManager.sourceArr

        }

    }

然后初始化

        orderManager = ScrollViewRefreshManager.init(tableView, delegate: self)

        orderManager.beginHeaderRefreshing()

最后实现协议方法即可使用

extension ViewController: ScrollViewRefreshManagerDelegate {

    funcscrollViewRefresh(_scrollView:UIScrollView, skip:Int, success:@escaping([Any],Int) ->Void, fail:@escaping() ->Void) {

        //skip 是页码 即请求第几页的数据


        //延时1秒执行

        lettime:TimeInterval=2.0

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

            //code

            print("1 秒后输出")

            letmodel =Model()

            model.goodsCount=1

            model.orderCode="123123"

            varmodelArr = [Model]()

            modelArr.append(model)

            modelArr.append(model)

            modelArr.append(model)

            modelArr.append(model)

            modelArr.append(model)

            modelArr.append(model)

            modelArr.append(model)

            modelArr.append(model)

            modelArr.append(model)

            ifskip <=2{

                modelArr.append(model)

            }

            success(modelArr,modelArr.count) //    modelArr是增加的数据,modelArr.count增加数据的条数,用于判断是否需要继续加载,默认为10 少于10条时,上啦不能继续加载

        }


    }

}

使用起来比较简单,但是封装的也比较简陋,如果有更好的方法也请分享或者留言一下,谢谢

你可能感兴趣的:(基于 MJRefresh 第三方的Swift二次封装)