1. 程式人生 > >MJRefresh的下拉重新整理,UICollectionView,UItableview

MJRefresh的下拉重新整理,UICollectionView,UItableview

1.將MJRefresh資料夾整個匯入所需的工程中。

2.資料夾中的MJRefresh.bundle--->[email protected] 圖片可自行替換,這個會在重新整理過程中顯示。

3.可以在MJRefreshConst.h和MJRefreshConst.m檔案中自定義顯示的文字內容和文字顏色。

4.只要你的view能夠滾動,就能整合這個控制元件,比如UIScrollView、UITableView、UICollectionView

5.在需要使用的地方,加入如下程式碼即可。

5.1  匯入標頭檔案

  1. #import "MJRefresh.h"
  1. #import "MJRefresh.h"

5.2  遵從協議

  1. @interface ViewController ()<MJRefreshBaseViewDelegate>  
  1. @interface ViewController ()<MJRefreshBaseViewDelegate>  

5.3  為你的view新增控制元件
  1. MJRefreshFooterView *footer = [MJRefreshFooterView footer];  
  2.     footer.scrollView = myTableView;  
  3.     footer.delegate = self;  
  4.     MJRefreshHeaderView *header = [MJRefreshHeaderView header];  
  5.     header.scrollView = myTableView;  
  6.     header.delegate = self;  
  1. MJRefreshFooterView *footer = [MJRefreshFooterView footer];  
  2.     footer.scrollView = myTableView;  
  3.     footer.delegate = self;  
  4.     MJRefreshHeaderView *header = [MJRefreshHeaderView header];  
  5.     header.scrollView = myTableView;  
  6.     header.delegate = self;  

5.4實現代理方法
  1. #pragma mark - 重新整理控制元件的代理方法
  2. #pragma mark 開始進入重新整理狀態
  3. - (void)refreshViewBeginRefreshing:(MJRefreshBaseView *)refreshView  
  4. {  
  5.     NSLog(@"%@----開始進入重新整理狀態", refreshView.class);  
  6.     // 2.2秒後重新整理表格UI
  7.     [self performSelector:@selector(doneWithView:) withObject:refreshView afterDelay:2.0];  
  8. }  
  9. #pragma mark 重新整理完畢
  10. - (void)refreshViewEndRefreshing:(MJRefreshBaseView *)refreshView  
  11. {  
  12.     NSLog(@"%@----重新整理完畢", refreshView.class);  
  13. }  
  14. #pragma mark 監聽重新整理狀態的改變
  15. - (void)refreshView:(MJRefreshBaseView *)refreshView stateChange:(MJRefreshState)state  
  16. {  
  17.     switch (state) {  
  18.         case MJRefreshStateNormal:  
  19.             NSLog(@"%@----切換到:普通狀態", refreshView.class);  
  20.             break;  
  21.         case MJRefreshStatePulling:  
  22.             NSLog(@"%@----切換到:鬆開即可重新整理的狀態", refreshView.class);  
  23.             break;  
  24.         case MJRefreshStateRefreshing:  
  25.             NSLog(@"%@----切換到:正在重新整理狀態", refreshView.class);  
  26.             break;  
  27.         default:  
  28.             break;  
  29.     }  
  30. }  
  31. #pragma mark 重新整理表格並且結束正在重新整理狀態
  32. - (void)doneWithView:(MJRefreshBaseView *)refreshView  
  33. {  
  34.     // 重新整理表格
  35.     [myTableView reloadData];  
  36.     // (最好在重新整理表格後呼叫)呼叫endRefreshing可以結束重新整理狀態
  37.     [refreshView endRefreshing];  
  38. }  
  1. #pragma mark - 重新整理控制元件的代理方法
  2. #pragma mark 開始進入重新整理狀態
  3. - (void)refreshViewBeginRefreshing:(MJRefreshBaseView *)refreshView  
  4. {  
  5.     NSLog(@"%@----開始進入重新整理狀態", refreshView.class);  
  6.     // 2.2秒後重新整理表格UI
  7.     [self performSelector:@selector(doneWithView:) withObject:refreshView afterDelay:2.0];  
  8. }  
  9. #pragma mark 重新整理完畢
  10. - (void)refreshViewEndRefreshing:(MJRefreshBaseView *)refreshView  
  11. {  
  12.     NSLog(@"%@----重新整理完畢", refreshView.class);  
  13. }  
  14. #pragma mark 監聽重新整理狀態的改變
  15. - (void)refreshView:(MJRefreshBaseView *)refreshView stateChange:(MJRefreshState)state  
  16. {  
  17.     switch (state) {  
  18.         case MJRefreshStateNormal:  
  19.             NSLog(@"%@----切換到:普通狀態", refreshView.class);  
  20.             break;  
  21.         case MJRefreshStatePulling:  
  22.             NSLog(@"%@----切換到:鬆開即可重新整理的狀態", refreshView.class);  
  23.             break;  
  24.         case MJRefreshStateRefreshing:  
  25.             NSLog(@"%@----切換到:正在重新整理狀態", refreshView.class);  
  26.             break;  
  27.         default:  
  28.             break;  
  29.     }  
  30. }  
  31. #pragma mark 重新整理表格並且結束正在重新整理狀態
  32. - (void)doneWithView:(MJRefreshBaseView *)refreshView  
  33. {  
  34.     // 重新整理表格
  35.     [myTableView reloadData];  
  36.     // (最好在重新整理表格後呼叫)呼叫endRefreshing可以結束重新整理狀態
  37.     [refreshView endRefreshing];  
  38. }  


6.你可以通過呼叫beginRefreshing自動進入下拉重新整理狀態。

7.你可以通過呼叫endRefreshing結束重新整理狀態。

8.為了保證內部不洩露,最好在控制器的dealloc中釋放佔用的記憶體
- (void)dealloc
{
[_header free];
[_footer free];
}

效果圖:
  • iOS / iPhone / iPad 僅需幾行程式碼就可以為UITableView或者CollectionView加上下拉重新整理或者上拉重新整理功能。可以自定義上下拉重新整理的文字說明。具體使用看下面的“使用方法”。<br /><br />    2014.02.08版本程式碼更新功能:<br /><br />    1.修復了“沒有資料時,上拉載入更多控制元件停滯不下”的BUG;<br /><br />    2.修復了示例程式中控制器的記憶體洩露。<br /><br />    2014.01.03版本程式碼更新功能:<br /><br />    1.完美適配iOS6\iOS7、iPhone\iPad橫豎屏<br /><br />    2.增加了重新整理控制元件狀態改變的回撥機制<br /><br />    3.解決了上拉載入更多殘留已久的莫名其妙BUG,增強了使用者體驗<br /><br />    4.刪除了冗餘的音訊播放功能<br /><br />    5.增加了記憶體釋放功能,解決了記憶體洩露的BUG<br /><br />    2013.01.03版本程式碼更新功能:<br /><br />    1.適配iPhone橫豎屏、iPad橫豎屏;<br /><br />    2.不用再呼叫 free 方法來釋放重新整理控制元件的資源;<br /><br />    3.演示了重新整理控制元件的block回撥;<br /><br />    4.演示了重新整理控制元件在UICollectionView上的使用.<br /><br />    作者說:網上開源的下拉-上拉重新整理控制元件,普遍封裝得過於複雜、耦合性強。因此本人特地花了點時間寫了一套無耦合、可插拔式的重新整理控制元件,對專案中的其他程式碼毫無侵入性,而且使用簡單,3行程式碼就能整合重新整理控制元件。<br /><br />    小編注:感謝開發者@M了個J 釋出程式碼於Code4App.com。
  • iOS / iPhone / iPad 僅需幾行程式碼就可以為UITableView或者CollectionView加上下拉重新整理或者上拉重新整理功能。可以自定義上下拉重新整理的文字說明。具體使用看下面的“使用方法”。<br /><br />    2014.02.08版本程式碼更新功能:<br /><br />    1.修復了“沒有資料時,上拉載入更多控制元件停滯不下”的BUG;<br /><br />    2.修復了示例程式中控制器的記憶體洩露。<br /><br />    2014.01.03版本程式碼更新功能:<br /><br />    1.完美適配iOS6\iOS7、iPhone\iPad橫豎屏<br /><br />    2.增加了重新整理控制元件狀態改變的回撥機制<br /><br />    3.解決了上拉載入更多殘留已久的莫名其妙BUG,增強了使用者體驗<br /><br />    4.刪除了冗餘的音訊播放功能<br /><br />    5.增加了記憶體釋放功能,解決了記憶體洩露的BUG<br /><br />    2013.01.03版本程式碼更新功能:<br /><br />    1.適配iPhone橫豎屏、iPad橫豎屏;<br /><br />    2.不用再呼叫 free 方法來釋放重新整理控制元件的資源;<br /><br />    3.演示了重新整理控制元件的block回撥;<br /><br />    4.演示了重新整理控制元件在UICollectionView上的使用.<br /><br />    作者說:網上開源的下拉-上拉重新整理控制元件,普遍封裝得過於複雜、耦合性強。因此本人特地花了點時間寫了一套無耦合、可插拔式的重新整理控制元件,對專案中的其他程式碼毫無侵入性,而且使用簡單,3行程式碼就能整合重新整理控制元件。<br /><br />    小編注:感謝開發者@M了個J 釋出程式碼於Code4App.com。
  • iOS / iPhone / iPad 僅需幾行程式碼就可以為UITableView或者CollectionView加上下拉重新整理或者上拉重新整理功能。可以自定義上下拉重新整理的文字說明。具體使用看下面的“使用方法”。<br /><br />    2014.02.08版本程式碼更新功能:<br /><br />    1.修復了“沒有資料時,上拉載入更多控制元件停滯不下”的BUG;<br /><br />    2.修復了示例程式中控制器的記憶體洩露。<br /><br />    2014.01.03版本程式碼更新功能:<br /><br />    1.完美適配iOS6\iOS7、iPhone\iPad橫豎屏<br /><br />    2.增加了重新整理控制元件狀態改變的回撥機制<br /><br />    3.解決了上拉載入更多殘留已久的莫名其妙BUG,增強了使用者體驗<br /><br />    4.刪除了冗餘的音訊播放功能<br /><br />    5.增加了記憶體釋放功能,解決了記憶體洩露的BUG<br /><br />    2013.01.03版本程式碼更新功能:<br /><br />    1.適配iPhone橫豎屏、iPad橫豎屏;<br /><br />    2.不用再呼叫 free 方法來釋放重新整理控制元件的資源;<br /><br />    3.演示了重新整理控制元件的block回撥;<br /><br />    4.演示了重新整理控制元件在UICollectionView上的使用.<br /><br />    作者說:網上開源的下拉-上拉重新整理控制元件,普遍封裝得過於複雜、耦合性強。因此本人特地花了點時間寫了一套無耦合、可插拔式的重新整理控制元件,對專案中的其他程式碼毫無侵入性,而且使用簡單,3行程式碼就能整合重新整理控制元件。<br /><br />    小編注:感謝開發者@M了個J 釋出程式碼於Code4App.com。
  • iOS / iPhone / iPad 僅需幾行程式碼就可以為UITableView或者CollectionView加上下拉重新整理或者上拉重新整理功能。可以自定義上下拉重新整理的文字說明。具體使用看下面的“使用方法”。<br /><br />    2014.02.08版本程式碼更新功能:<br /><br />    1.修復了“沒有資料時,上拉載入更多控制元件停滯不下”的BUG;<br /><br />    2.修復了示例程式中控制器的記憶體洩露。<br /><br />    2014.01.03版本程式碼更新功能:<br /><br />    1.完美適配iOS6\iOS7、iPhone\iPad橫豎屏<br /><br />    2.增加了重新整理控制元件狀態改變的回撥機制<br /><br />    3.解決了上拉載入更多殘留已久的莫名其妙BUG,增強了使用者體驗<br /><br />    4.刪除了冗餘的音訊播放功能<br /><br />    5.增加了記憶體釋放功能,解決了記憶體洩露的BUG<br /><br />    2013.01.03版本程式碼更新功能:<br /><br />    1.適配iPhone橫豎屏、iPad橫豎屏;<br /><br />    2.不用再呼叫 free 方法來釋放重新整理控制元件的資源;<br /><br />    3.演示了重新整理控制元件的block回撥;<br /><br />    4.演示了重新整理控制元件在UICollectionView上的使用.<br /><br />    作者說:網上開源的下拉-上拉重新整理控制元件,普遍封裝得過於複雜、耦合性強。因此本人特地花了點時間寫了一套無耦合、可插拔式的重新整理控制元件,對專案中的其他程式碼毫無侵入性,而且使用簡單,3行程式碼就能整合重新整理控制元件。<br /><br />    小編注:感謝開發者@M了個J 釋出程式碼於Code4App.com。