MJRrfresh上下拉重新整理gif動畫
阿新 • • 發佈:2019-01-07
<span style="font-size:18px;"><strong>以下拉為例</strong>:</span>
MJRefreshGifHeader *header = [MJRefreshGifHeaderheaderWithRefreshingTarget:selfrefreshingAction:@selector(request)]; NSMutableArray *refreshingImages = [NSMutableArrayarray]; for (NSUInteger i =1; i<=59; i++) { UIImage *image = [UIImageimageNamed:[NSStringstringWithFormat:@"圖層-%zd", i]]; [refreshingImages addObject:image]; } NSMutableArray *idleImages = [NSMutableArrayarray]; for (NSUInteger i =60; i<=62; i++) { UIImage *image = [UIImageimageNamed:[NSStringstringWithFormat:@"圖層-%zd", i]]; [idleImages addObject:image]; } // 設定普通狀態的動畫圖片 [header setImages:idleImagesforState:MJRefreshStateIdle]; // 設定即將重新整理狀態的動畫圖片(一鬆開就會重新整理的狀態) [header setImages:refreshingImagesforState:MJRefreshStatePulling]; // 設定正在重新整理狀態的動畫圖片 [header setImages:refreshingImagesforState:MJRefreshStateRefreshing]; // 設定header self.tableView.mj_header = header; dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(4.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ [self.tableView.mj_headerendRefreshing]; });
不過專案中一般會用很多地方用的到重新整理 ,所以一般的做法還是自定義一個繼承自MJRefreshGifHeader的類,在裡面實現prepare方法,設定動畫用到的圖片陣列。就ok了。
關於動畫時間的問題,可以在自定義類中實現這個方法來修改動畫時間。
- (void)setImages:(NSArray *)images forState:(MJRefreshState)state
{
[selfsetImages:images duration:images.count *0.1forState:state];
}