https://github.com/coder-dongjiayi/uiscrollview-tdscrollview
集成MJRefresh和UIScrollView+EmptyDataSet 用最少的代码处理刷新和空白页面
https://github.com/coder-dongjiayi/uiscrollview-tdscrollview
mjrefresh uiscrollview-emptydataset uiscrollview-tdscrollview
Last synced: about 1 month ago
JSON representation
集成MJRefresh和UIScrollView+EmptyDataSet 用最少的代码处理刷新和空白页面
- Host: GitHub
- URL: https://github.com/coder-dongjiayi/uiscrollview-tdscrollview
- Owner: coder-dongjiayi
- Created: 2020-12-03T05:58:34.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2020-12-21T08:44:18.000Z (over 4 years ago)
- Last Synced: 2025-01-22T18:11:18.716Z (3 months ago)
- Topics: mjrefresh, uiscrollview-emptydataset, uiscrollview-tdscrollview
- Language: Objective-C
- Homepage:
- Size: 710 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 用最简单的方式处理下拉刷新和空白页面处理
## 依赖
* MJRefresh
* DZNEmptyDataSet
## 为什么会使用UISCrollView-TDScrollView
* 如果给一个``` scrollview ```添加下拉刷新你可能会这样写
```
self.collectionView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
}];self.collectionView.mj_footer = [MJRefreshAutoNormalFooter footerWithRefreshingBlock:^{
}];
```* 当你需要显示空白页面的时候你也许会这样写
```
if(list.count == 0){
empty.hidden = false
}else{
empty.hidden = true
}
```
我认为工程中大量如此的代码,不够美观,不够优雅,所以我觉得应该有更好的实现方式
## 如何使用1. 设置``` tableView```或者```collectionView```的delegate
```
tableView.tdDelegate = self
```2. 实现``` TDScrollviewDelegate```协议 如果需求只需要下拉刷新那么只需要实现``` tdClientBeginRefresh``` 如果只需要上拉加载更多那么只需要实现```tdClientLoadMoreRefresh ```
```swift
extension HomeParttimeListView:TDScrollviewDelegate{
func tdClientBeginRefresh() {
page = 1
}
func tdClientLoadMoreRefresh() {
page = page + 1
}
}
```3. 刷新数据(无需关心此时是下拉刷新还是上拉加载更多 请直接调用 td_reload()方法)
```swift
if page == 1 {
dataSource = source
}else{
dataSource.append(contentsOf: source)
}
tableView.td_reload(source.count)
```
## 解释
1. ``` td_reload```这个方法传入一个count 如果 count=0 那么认为就没有下一页数据了,就会显示没有更多数据
2. 为什么没有使用gitHub上的 [UIScrollView+EmptyDataSet](https://github.com/dzenbot/DZNEmptyDataSet) ?因为这个库有bug,我改了下源码 所以如果你的工程里使用了 ``` DZNEmptyDataSet``` 你可以删除你工程的,使用我这里面的 完全兼容。
3. 为什么没有制作成pod集成?因为每家公司的下拉刷新显示的空白页面或者默认文案都不一样,你可以把这份代码放到你自己的工程里,根据你公司产品的要求 进行定制。