一款簡單好用的UICollectionView橫向滾動刷新控件

點我跳轉原文
源碼地址:(GitHub)git

實現功能:

  • 接入簡單,不侵入代碼
  • 右拉刷新,左拉加載更多
  • 自定義提示文案和加載動畫
  • 方便隱藏和顯示加載提示文本和動畫
  • 支持 ‘沒有更多數據’ 提示

接入方式

  1. 下載源碼,將文件夾 "SideRefresh"添加進工程
  2. 引入頭文件 #import "UICollectionView+SideRefresh.h"
  3. 建立SideRefreshHeader和SideRefreshFooter並添加給UICollectionView便可

默認刷新樣式

SideRefreshHeader *refreshHeader = [SideRefreshHeader refreshWithLoadAction:^{
    //執行刷新
}];
self.collectionView.sideRefreshHeader = refreshHeader;

SideRefreshFooter *refreshFooter = [SideRefreshFooter refreshWithLoadAction:^{
    //執行加載更多
}];
self.collectionView.sideRefreshFooter = refreshFooter;

默認樣式

自定義刷新提示和圖片動畫

SideRefreshHeader *refreshHeader = [SideRefreshHeader refreshWithLoadAction:^{
    //執行刷新
}];
NSMutableArray *loadingImages = [NSMutableArray array];
for(int i = 1; i <= 9; i++) {
    UIImage *loadingImg = [UIImage imageNamed:[NSString stringWithFormat:@"loading_0%d", i]];
    if(loadingImg) {
        [loadingImages addObject:loadingImg];
    }
}
refreshHeader.loadingImages = loadingImages;//自定義圖片動畫
//自定義提示文案
refreshHeader.normalMessage = @"再拉我試試!";
refreshHeader.pullingMessage = @"鬆開,鬆開";
refreshHeader.loadingMessage = @"奔跑...";
self.collectionView.sideRefreshHeader = refreshHeader;

SideRefreshFooter *refreshFooter = [SideRefreshFooter refreshWithLoadAction:^{
    //執行加載更多
}];
self.collectionView.sideRefreshFooter = refreshFooter;

自定義.png

隱藏刷新提示或動畫

SideRefreshHeader *refreshHeader = [SideRefreshHeader refreshWithLoadAction:^{
    //執行刷新
}];
refreshHeader.hideMessage = YES;//隱藏提示
self.collectionView.sideRefreshHeader = refreshHeader;

SideRefreshFooter *refreshFooter = [SideRefreshFooter refreshWithLoadAction:^{
    //執行加載更多
}];
refreshFooter.hideIndicator = YES;//隱藏加載動畫
self.collectionView.sideRefreshFooter = refreshFooter;

隱藏提示或動畫.png

‘沒有更多數據’ 提示

顯示默認提示github

[self.collectionView showEmptyFooter]

顯示自定義提示ide

[self.collectionView showEmptyFooterWithMessage:@"不要看了,沒有了。"];

沒有更多數據.png

PS:隱藏須要手動調用動畫

[self.collectionView hideEmptyFooter];

實現方式

  • 經過Runtime爲UICollectionView添加SideRefreshHeader和SideRefreshFooter屬性
  • 觀察UICollectionView的contentOffset實現拖動相關邏輯
  • 觀察UICollectionView的contentSize來重置刷新視圖
  • 更多細節參見源碼Demo

若是以爲好用歡迎Star github, 使用問題請Issue。spa

相關文章
相關標籤/搜索