MJRefresh上拉刷新&下拉加載


在ios7之前,一直在使用開源的EGO庫。但是,在使用過程中發現,普遍封裝得過於復雜、耦合性強,不利於集成到自己的項目中。

另外,在ios7之后,一些原有的下拉刷新,上提加載控件表現的就不是那么出色了。除了可能出錯外,也不符合扁平化的風格。

后來,在code4App上發現了一個大牛上傳了一個開源代碼, 僅需幾行代碼就可以為UITableView或者CollectionView加上下拉刷新或者上拉刷新功能。可以自定義上下拉刷新的文字說明。

下載下來自己試了下,發現不錯。  mark下。

下載鏈接:http://code4app.com/ios/快速集成下拉上拉刷新/52326ce26803fabc46000000

下面紀錄下自己的集成過程,當然,作者所給的demo里面已經很詳細的給出了。 這里只不過是紀錄下自己的實現過程而已。

1.將MJRefresh文件夾整個導入所需的工程中。

2.文件夾中的MJRefresh.bundle--->arrow@2x.png 圖片可自行替換,這個會在刷新過程中顯示。

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

4.只要你的view能夠滾動,就能集成這個控件,比如UIScrollView、UITableView、UICollectionView

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

5.1  導入頭文件

1 #import "MJRefresh.h"

5.2  遵從協議

1 @interface ViewController ()<MJRefreshBaseViewDelegate> 

5.3  為你的view添加控件

1 MJRefreshFooterView *footer = [MJRefreshFooterView footer];  
2     footer.scrollView = myTableView;  
3     footer.delegate = self;  
4       
5     MJRefreshHeaderView *header = [MJRefreshHeaderView header];  
6     header.scrollView = myTableView;  
7     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 }  
10   
11 #pragma mark 刷新完畢  
12 - (void)refreshViewEndRefreshing:(MJRefreshBaseView *)refreshView  
13 {  
14     NSLog(@"%@----刷新完畢", refreshView.class);  
15 }  
16   
17 #pragma mark 監聽刷新狀態的改變  
18 - (void)refreshView:(MJRefreshBaseView *)refreshView stateChange:(MJRefreshState)state  
19 {  
20     switch (state) {  
21         case MJRefreshStateNormal:  
22             NSLog(@"%@----切換到:普通狀態", refreshView.class);  
23             break;  
24               
25         case MJRefreshStatePulling:  
26             NSLog(@"%@----切換到:松開即可刷新的狀態", refreshView.class);  
27             break;  
28               
29         case MJRefreshStateRefreshing:  
30             NSLog(@"%@----切換到:正在刷新狀態", refreshView.class);  
31             break;  
32         default:  
33             break;  
34     }  
35 }  
36   
37 #pragma mark 刷新表格並且結束正在刷新狀態  
38 - (void)doneWithView:(MJRefreshBaseView *)refreshView  
39 {  
40     // 刷新表格  
41     [myTableView reloadData];  
42       
43     // (最好在刷新表格后調用)調用endRefreshing可以結束刷新狀態  
44     [refreshView endRefreshing];  
45 }  

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。



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM