不说话,先上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条时,上啦不能继续加载
}
}
}
使用起来比较简单,但是封装的也比较简陋,如果有更好的方法也请分享或者留言一下,谢谢
网友评论