1. 程式人生 > >MJRrfresh上下拉重新整理gif動畫

MJRrfresh上下拉重新整理gif動畫

<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];

}