1. 程式人生 > >iOS開發-ios7下拉重新整理 上提載入快速整合

iOS開發-ios7下拉重新整理 上提載入快速整合

               

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

另外,在ios7之後,一些原有的下拉重新整理,上提載入控制元件表現的就不是那麼出色了。除了可能出錯外,也不符合扁平化的風格。

後來,在code4App上發現了一個大牛上傳了一個開原始碼, 僅需幾行程式碼就可以為UITableView或者CollectionView加上下拉重新整理或者上拉重新整理功能。可以自定義上下拉重新整理的文字說明。

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

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

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

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

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

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

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

5.1  匯入標頭檔案

#import "MJRefresh.h"

5.2  遵從協議

@interface ViewController
()<MJRefreshBaseViewDelegate>
5.3  為你的view新增控制元件
MJRefreshFooterView *footer = [MJRefreshFooterView footer];    footer.scrollView = myTableView;    footer.delegate = self;        MJRefreshHeaderView *header = [MJRefreshHeaderView header];    header.scrollView = myTableView;    header.delegate = self;
5.4實現代理方法
#pragma mark - 重新整理控制元件的代理方法#pragma mark 開始進入重新整理狀態- (void)refreshViewBeginRefreshing:(MJRefreshBaseView *)refreshView{    NSLog(@"%@----開始進入重新整理狀態", refreshView.class);    // 2.2秒後重新整理表格UI    [self performSelector:@selector(doneWithView:) withObject:refreshView afterDelay:2.0];}#pragma mark 重新整理完畢- (void)refreshViewEndRefreshing:(MJRefreshBaseView *)refreshView{    NSLog(@"%@----重新整理完畢", refreshView.class);}#pragma mark 監聽重新整理狀態的改變- (void)refreshView:(MJRefreshBaseView *)refreshView stateChange:(MJRefreshState)state{    switch (state) {        case MJRefreshStateNormal:            NSLog(@"%@----切換到:普通狀態", refreshView.class);            break;                    case MJRefreshStatePulling:            NSLog(@"%@----切換到:鬆開即可重新整理的狀態", refreshView.class);            break;                    case MJRefreshStateRefreshing:            NSLog(@"%@----切換到:正在重新整理狀態", refreshView.class);            break;        default:            break;    }}#pragma mark 重新整理表格並且結束正在重新整理狀態- (void)doneWithView:(MJRefreshBaseView *)refreshView{    // 重新整理表格    [myTableView reloadData];        // (最好在重新整理表格後呼叫)呼叫endRefreshing可以結束重新整理狀態    [refreshView endRefreshing];}

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。

學習的路上,與君共勉。