MJRefresh的下拉重新整理,UICollectionView,UItableview
阿新 • • 發佈:2019-02-19
1.將MJRefresh資料夾整個匯入所需的工程中。
2.資料夾中的MJRefresh.bundle--->[email protected] 圖片可自行替換,這個會在重新整理過程中顯示。
3.可以在MJRefreshConst.h和MJRefreshConst.m檔案中自定義顯示的文字內容和文字顏色。
4.只要你的view能夠滾動,就能整合這個控制元件,比如UIScrollView、UITableView、UICollectionView
5.在需要使用的地方,加入如下程式碼即可。
5.1 匯入標頭檔案
- #import "MJRefresh.h"
-
#import "MJRefresh.h"
5.2 遵從協議
- @interface ViewController ()<MJRefreshBaseViewDelegate>
- @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;
- 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];
- }
- #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];
}