Swift快速集成下拉刷新和上拉加載更多示例代碼
ESPullToRefresh
ESPullToRefresh是一個(gè)非常易于開(kāi)發(fā)者使用的下拉刷新和加載更多組件。通過(guò)一個(gè)UIScrollView的擴(kuò)展,可以輕松為UIScrollView的所有子類添加下拉刷新功能。 如果你想定制組件的UI樣式,只要實(shí)現(xiàn)指定的協(xié)議方法即可。Github地址
如何安裝
使用CocoaPods
pod "ESPullToRefresh"
手動(dòng)安裝
git clone https://github.com/eggswift/pull-to-refresh.git open ESPullToRefresh
開(kāi)始使用
使用默認(rèn)樣式 效果如下:

設(shè)置默認(rèn)下拉刷新組件
self.tableView.es_addPullToRefresh {
[weak self] in
/// 在這里做刷新相關(guān)事件
/// ...
/// 如果你的刷新事件成功,設(shè)置completion自動(dòng)重置footer的狀態(tài)
self?.tableView.es_stopPullToRefresh(completion: true)
/// 設(shè)置ignoreFooter來(lái)處理不需要顯示footer的情況
self?.tableView.es_stopPullToRefresh(completion: true, ignoreFooter: false)
})
}
設(shè)置默認(rèn)加載更多組件
self.tableView.es_addInfiniteScrolling {
[weak self] in
/// 在這里做加載更多相關(guān)事件
/// ...
/// 如果你的加載更多事件成功,調(diào)用es_stopLoadingMore()重置footer狀態(tài)
self?.tableView.es_stopLoadingMore()
/// 通過(guò)es_noticeNoMoreData()設(shè)置footer暫無(wú)數(shù)據(jù)狀態(tài)
self?.tableView.es_noticeNoMoreData()
})
}
使用自定義樣式 效果如下:

注: 加載動(dòng)畫(huà)資源來(lái)自美團(tuán) iOS app。

ESPullToRefresh通過(guò)ESRefreshProtocol和ESRefreshAnimatorProtocol來(lái)約束刷新組件的使用,自定義的組件必須遵守這兩個(gè)協(xié)議,并實(shí)現(xiàn)協(xié)議中的方法。
設(shè)置自定義下拉刷新組件
func es_addPullToRefresh(animator animator: protocol<ESRefreshProtocol, ESRefreshAnimatorProtocol>, handler: ESRefreshHandler)
設(shè)置自定義加載更多組件
func es_addInfiniteScrolling(animator animator: protocol<ESRefreshProtocol, ESRefreshAnimatorProtocol>, handler: ESRefreshHandler)
移除方法
func es_removeRefreshHeader() func es_removeRefreshFooter()
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Swift TableView實(shí)現(xiàn)凍結(jié)窗格功能
這篇文章主要為大家詳細(xì)介紹了Swift TableView實(shí)現(xiàn)凍結(jié)窗格功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11
Swift?中的?RegexBuilder學(xué)習(xí)指南
這篇文章主要為大家介紹了Swift中的RegexBuilder學(xué)習(xí)指南,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
如何在Swift?中使用?async?let?并發(fā)運(yùn)行后臺(tái)任務(wù)
Swift?異步編程是一種編寫(xiě)允許某些任務(wù)并發(fā)運(yùn)行而不是按順序運(yùn)行的代碼的方法,這篇文章主要介紹了在Swift中使用async?let并發(fā)運(yùn)行后臺(tái)任務(wù),需要的朋友可以參考下2023-06-06
Swift的74個(gè)常用內(nèi)置函數(shù)介紹
這篇文章主要介紹了Swift的74個(gè)常用內(nèi)置函數(shù)介紹,這篇文章列舉出了所有的Swift庫(kù)函數(shù),內(nèi)置函數(shù)是指無(wú)需引入任何模塊即可以直接使用的函數(shù),需要的朋友可以參考下2015-01-01
swift4 使用DrawerController實(shí)現(xiàn)側(cè)滑菜單功能的示例代碼
這篇文章主要介紹了swift4 使用DrawerController實(shí)現(xiàn)側(cè)滑功能的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-06-06
Swift使用編解碼庫(kù)Codable的過(guò)程詳解
Codable 是 Swift 引入的全新的編解碼庫(kù),使開(kāi)發(fā)者更方便的解析JSON 或 plist 文件,支持枚舉、結(jié)構(gòu)體和類,這篇文章主要介紹了Swift使用編解碼庫(kù)Codable,需要的朋友可以參考下2023-09-09

