在ios7之前,一直在使用開源的EGO庫。但是,在使用過程中發現,普遍封裝得過於複雜、耦合性強,不利於整合到自己的項目中。
另外,在ios7之後,一些原有的下拉重新整理,上提載入控制項表現的就不是那麼出色了。除了可能出錯外,也不符合扁平化的風格。
後來,在code4App上發現了一個大牛上傳了一個開原始碼, 僅需幾行代碼就可以為UITableView或者CollectionView加上下拉重新整理或者上拉重新整理功能。可以自訂上下拉重新整理的文字說明。
下載下來自己試了下,發現不錯。 mark下。
下面紀錄下自己的整合過程,當然,作者所給的demo裡面已經很詳細的給出了。 這裡只不過是紀錄下自己的實現過程而已。
1.將MJRefresh檔案夾整個匯入所需的工程中。
2.檔案夾中的MJRefresh.bundle--->arrow@2x.png 圖片可自行替換,這個會在重新整理過程中顯示。
3.可以在MJRefreshConst.h和MJRefreshConst.m檔案中自訂顯示的文字內容和文字顏色。
4.只要你的view能夠滾動,就能整合這個控制項,比如UIScrollView、UITableView、UICollectionView
5.在需要使用的地方,加入如下代碼即可。
5.1 匯入標頭檔
#import MJRefresh.h
5.2 遵從協議
@interface ViewController ()
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];
}
:
2014.02.08版本代碼更新功能:
1.修複了“沒有資料時,上拉載入更多控制項停滯不下”的BUG;
2.修複了樣本程式中控制器的記憶體泄露。
2014.01.03版本代碼更新功能:
1.完美適配iOS6iOS7、iPhoneiPad橫豎屏
2.增加了重新整理控制項狀態改變的回調機制
3.解決了上拉載入更多殘留已久的莫名其妙BUG,增強了使用者體驗
4.刪除了冗餘的音頻播放功能
5.增加了記憶體釋放功能,解決了記憶體泄露的BUG
2013.01.03版本代碼更新功能:
1.適配iPhone橫豎屏、iPad橫豎屏;
2.不用再調用 free 方法來釋放重新整理控制項的資源;
3.示範了重新整理控制項的block回調;
4.示範了重新整理控制項在UICollectionView上的使用.
作者說:網上開源的下拉-上拉重新整理控制項,普遍封裝得過於複雜、耦合性強。因此本人特地花了點時間寫了一套無耦合、可插拔式的重新整理控制項,對項目中的其他代碼毫無侵入性,而且使用簡單,3行代碼就能整合重新整理控制項。
小編註:感謝開發人員@M了個J 發布代碼於Code4App.com。>
2014.02.08版本代碼更新功能:
1.修複了“沒有資料時,上拉載入更多控制項停滯不下”的BUG;
2.修複了樣本程式中控制器的記憶體泄露。
2014.01.03版本代碼更新功能:
1.完美適配iOS6iOS7、iPhoneiPad橫豎屏
2.增加了重新整理控制項狀態改變的回調機制
3.解決了上拉載入更多殘留已久的莫名其妙BUG,增強了使用者體驗
4.刪除了冗餘的音頻播放功能
5.增加了記憶體釋放功能,解決了記憶體泄露的BUG
2013.01.03版本代碼更新功能:
1.適配iPhone橫豎屏、iPad橫豎屏;
2.不用再調用 free 方法來釋放重新整理控制項的資源;
3.示範了重新整理控制項的block回調;
4.示範了重新整理控制項在UICollectionView上的使用.
作者說:網上開源的下拉-上拉重新整理控制項,普遍封裝得過於複雜、耦合性強。因此本人特地花了點時間寫了一套無耦合、可插拔式的重新整理控制項,對項目中的其他代碼毫無侵入性,而且使用簡單,3行代碼就能整合重新整理控制項。
小編註:感謝開發人員@M了個J 發布代碼於Code4App.com。>
2014.02.08版本代碼更新功能:
1.修複了“沒有資料時,上拉載入更多控制項停滯不下”的BUG;
2.修複了樣本程式中控制器的記憶體泄露。
2014.01.03版本代碼更新功能:
1.完美適配iOS6iOS7、iPhoneiPad橫豎屏
2.增加了重新整理控制項狀態改變的回調機制
3.解決了上拉載入更多殘留已久的莫名其妙BUG,增強了使用者體驗
4.刪除了冗餘的音頻播放功能
5.增加了記憶體釋放功能,解決了記憶體泄露的BUG
2013.01.03版本代碼更新功能:
1.適配iPhone橫豎屏、iPad橫豎屏;
2.不用再調用 free 方法來釋放重新整理控制項的資源;
3.示範了重新整理控制項的block回調;
4.示範了重新整理控制項在UICollectionView上的使用.
作者說:網上開源的下拉-上拉重新整理控制項,普遍封裝得過於複雜、耦合性強。因此本人特地花了點時間寫了一套無耦合、可插拔式的重新整理控制項,對項目中的其他代碼毫無侵入性,而且使用簡單,3行代碼就能整合重新整理控制項。
小編註:感謝開發人員@M了個J 發布代碼於Code4App.com。>
2014.02.08版本代碼更新功能:
1.修複了“沒有資料時,上拉載入更多控制項停滯不下”的BUG;
2.修複了樣本程式中控制器的記憶體泄露。
2014.01.03版本代碼更新功能:
1.完美適配iOS6iOS7、iPhoneiPad橫豎屏
2.增加了重新整理控制項狀態改變的回調機制
3.解決了上拉載入更多殘留已久的莫名其妙BUG,增強了使用者體驗
4.刪除了冗餘的音頻播放功能
5.增加了記憶體釋放功能,解決了記憶體泄露的BUG
2013.01.03版本代碼更新功能:
1.適配iPhone橫豎屏、iPad橫豎屏;
2.不用再調用 free 方法來釋放重新整理控制項的資源;
3.示範了重新整理控制項的block回調;
4.示範了重新整理控制項在UICollectionView上的使用.
作者說:網上開源的下拉-上拉重新整理控制項,普遍封裝得過於複雜、耦合性強。因此本人特地花了點時間寫了一套無耦合、可插拔式的重新整理控制項,對項目中的其他代碼毫無侵入性,而且使用簡單,3行代碼就能整合重新整理控制項。
小編註:感謝開發人員@M了個J 發布代碼於Code4App.com。>
學習的路上,與君共勉。