debug_cat 发表于 2021-3-14 19:33

[ios]iOS商品页面下拉刷新与上拉加载(连载8)

国际惯例,看看效果图


gif比较必须小于3m,没办法上传更高清的gif了,手机上面跑是很流畅的。

## 商品列表增加下拉刷新

我们在上一篇中做好了商品的加载。但是还没有刷新功能,和拉到底部,加载更多数据的功能。

现在我们就开始。

我在网上找的了一个刷新的工具。

```shell
pod "ESPullToRefresh"
//切换到项目根目录中。执行下面的命令
pod install
//关闭xcode,然后重新打开之前的项目,就把项目导入成功了。
```

---

#### 如何使用呢

```swift
//先导入
import ESPullToRefresh
//设置刷新的代{过}{滤}理
//设置刷新es工具
uiTable.es.addPullToRefresh {
    print("refresh??")
    self.currentPage = 1
    //下拉刷新的时候,我们获取第一页的数据
    self.getData(page: self.currentPage)
}
uiTable.es.addInfiniteScrolling {
    print("load more")
    self.getData(page: self.currentPage)
}
```

刷新的时候,我们获取第一页数据。

数据获取完成的时候,页面+1

拉到底部的时候,会加载更多数据。这个时候就直接获取就行了。

---

#### 处理加载完成

```swift
func getData(page: Int) {
      //获取数据
      Alamofire.request(UnionApi.getPreferentialUrl(page: page))
            .responseObject {(response: DataResponse<PreferentialBean>) in
                //获取数据成功
                let result = response.result.value
                print("获取的数据page:\(page)")
                //print(result?.data?.tbkDgOptimusMaterialResponse?.resultList?.mapData?.count)
                //设置到数组中
                if let arr = result?.data?.tbkDgOptimusMaterialResponse?.resultList?.mapData {
                  if page == 1{
                        //清空全部数据
                        self.preferentialList.removeAll()
                        self.preferentialList = arr
                        //停止下拉刷新
                        self.uiTable.es.stopPullToRefresh()
                  } else{
                        //不是第一页的时候,我们需要把获取到的数据,加入到之前的数组中
                        
                        self.preferentialList += arr
                        self.uiTable.es.stopLoadingMore()
                  }
                  self.currentPage += 1
                  //刷新列表
                  self.uiTable.reloadData()
                } else {
                  //返回的数据是空的,那就没有数据了
                  self.uiTable.es.noticeNoMoreData()
                }
            }
    }
```

这样我们就完成了下拉与上拉的功能了。



`计划`

> 页面没有数据的时候,增加提示

代码地址:

https://github.com/cat13954/IOSUiTableViewSample

debug_cat 发表于 2021-3-15 08:55

qljfjut 发表于 2021-3-15 00:08
看了半天,一脸迷茫

把代码跑起来,整个效果就有了了{:1_918:}
页: [1]
查看完整版本: [ios]iOS商品页面下拉刷新与上拉加载(连载8)