本文介紹了ios基于MJRefresh實現上拉刷新和下拉加載動畫效果,分享給大家,具體如下:
目錄
1、 頭部刷新動畫
2、尾部刷新動畫
頭部刷新動畫
#import <MJRefresh/MJRefresh.h>@interface HZNormalHeader : MJRefreshGifHeader@end
#import "HZNormalHeader.h"@implementation HZNormalHeader#pragma mark - 重寫父類的方法- (void)prepare{ [super prepare]; // 設置普通狀態的動畫圖片 NSMutableArray *idleImages = [NSMutableArray array]; for (NSUInteger i = 1; i<=60; i++) { UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"dropdown_anim__000%zd", i]]; [idleImages addObject:image]; } [self setImages:idleImages forState:MJRefreshStateIdle]; // 設置即將刷新狀態的動畫圖片(一松開就會刷新的狀態) NSMutableArray *refreshingImages = [NSMutableArray array]; for (NSUInteger i = 1; i<=3; i++) { UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"dropdown_loading_0%zd", i]]; [refreshingImages addObject:image]; } [self setImages:refreshingImages forState:MJRefreshStatePulling]; // 設置正在刷新狀態的動畫圖片 [self setImages:refreshingImages forState:MJRefreshStateRefreshing]; //隱藏時間 self.lastUpdatedTimeLabel.hidden = NO; //隱藏狀態 self.stateLabel.hidden = NO;}
實現部分
self.tableView.mj_header = [HZNormalHeader headerWithRefreshingBlock:^{ dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ [self.tableView.mj_header endRefreshing]; }); }];
尾部刷新動畫
#import <MJRefresh/MJRefresh.h>@interface XZZNormalFooter : MJRefreshAutoGifFooter@end
#import "XZZNormalFooter.h"@implementation XZZNormalFooter#pragma mark - 重寫父類的方法- (void)prepare{ [super prepare]; // 設置普通狀態的動畫圖片 NSMutableArray *idleImages = [NSMutableArray array]; for (NSUInteger i = 1; i<=60; i++) { UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"dropdown_anim__000%zd", i]]; [idleImages addObject:image]; } [self setImages:idleImages forState:MJRefreshStateIdle]; // 設置即將刷新狀態的動畫圖片(一松開就會刷新的狀態) NSMutableArray *refreshingImages = [NSMutableArray array]; for (NSUInteger i = 1; i<=3; i++) { UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"dropdown_loading_0%zd", i]]; [refreshingImages addObject:image]; } [self setImages:refreshingImages forState:MJRefreshStatePulling]; // 設置正在刷新狀態的動畫圖片 [self setImages:refreshingImages forState:MJRefreshStateRefreshing]; //隱藏時間// self.lastUpdatedTimeLabel.hidden = NO; /*隱藏*/ self.refreshingTitleHidden = YES; //隱藏狀態 self.stateLabel.hidden = YES;}@end
實現部分
self.tableView.mj_footer = [XZZNormalFooter footerWithRefreshingBlock:^{ dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ [self.tableView.mj_footer endRefreshing]; }); }];
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。
新聞熱點
疑難解答