- MJRefresh
- DZNEmptyDataSet
-
如果给一个
scrollview
添加下拉刷新你可能会这样写self.collectionView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{ }]; self.collectionView.mj_footer = [MJRefreshAutoNormalFooter footerWithRefreshingBlock:^{ }];
-
当你需要显示空白页面的时候你也许会这样写
if(list.count == 0){ empty.hidden = false }else{ empty.hidden = true }
我认为工程中大量如此的代码,不够美观,不够优雅,所以我觉得应该有更好的实现方式
-
设置
tableView
或者collectionView
的delegatetableView.tdDelegate = self
-
实现
TDScrollviewDelegate
协议 如果需求只需要下拉刷新那么只需要实现tdClientBeginRefresh
如果只需要上拉加载更多那么只需要实现tdClientLoadMoreRefresh
extension HomeParttimeListView:TDScrollviewDelegate{ func tdClientBeginRefresh() { page = 1 } func tdClientLoadMoreRefresh() { page = page + 1 } }
-
刷新数据(无需关心此时是下拉刷新还是上拉加载更多 请直接调用 td_reload()方法)
if page == 1 { dataSource = source }else{ dataSource.append(contentsOf: source) } tableView.td_reload(source.count)
-
td_reload
这个方法传入一个count 如果 count=0 那么认为就没有下一页数据了,就会显示没有更多数据 -
为什么没有使用gitHub上的 UIScrollView+EmptyDataSet ?因为这个库有bug,我改了下源码 所以如果你的工程里使用了
DZNEmptyDataSet
你可以删除你工程的,使用我这里面的 完全兼容。 -
为什么没有制作成pod集成?因为每家公司的下拉刷新显示的空白页面或者默认文案都不一样,你可以把这份代码放到你自己的工程里,根据你公司产品的要求 进行定制。