2017-02-21 14 views
2

デフォルトの読み込みの代わりにgifイメージを使用できますか?私はこれまでのところこのコードを使用していますが、結果は得られません。誰もがこのコードで間違っていることを示唆することができますか?MBProgreeHud with gif image

#import "UIImage+GIF.h" 
-(void) showLoadingHUD:(NSString *)title 
{ 
    [self hideLoadingHUD]; 
    if(!HUD){ 
     HUD = [MBProgressHUD showHUDAddedTo:self.window animated:YES]; 
    } 
    [HUD setColor:[UIColor clearColor]]; 

    UIImageView *imageViewAnimatedGif = [[UIImageView alloc]init]; 
    imageViewAnimatedGif.image= [UIImage sd_animatedGIFNamed:@"martini_glass"]; 

    HUD.customView = [[UIImageView alloc] initWithImage:imageViewAnimatedGif.image]; 
    CABasicAnimation *rotation; 
    rotation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"]; 
    rotation.fromValue = [NSNumber numberWithFloat:0]; 
    rotation.toValue = [NSNumber numberWithFloat:(2 * M_PI)]; 
    rotation.duration = 0.7f; // Speed 
    rotation.repeatCount = HUGE_VALF; // Repeat forever. Can be a finite number. 
    [HUD.customView.layer addAnimation:rotation forKey:@"Spin"]; 
    HUD.mode = MBProgressHUDModeCustomView; 
    [HUD show:YES]; 
} 
+0

チェックこの:https://www.cocoacontrols.com/controls/gifprogresshud –

+0

@AntonyRaphelがこれをチェックしました。 MBProgressHUDを使用してこれを実装できるかどうかを知りたい。 – Niharika

+0

コードはansとして追加されました –

答えて

1

使用最新のライブラリ画像の.gif "UIImage + GIF.h"、それが正常に動作している

-(void) showLoadingHUD:(NSString *)title { 

    [HUD hideAnimated:true]; 
    HUD = [MBProgressHUD showHUDAddedTo:self.view animated:YES]; 

    HUD.label.text = title; 
    HUD.bezelView.color = [UIColor clearColor]; 
    UIImageView *imageViewAnimatedGif = [[UIImageView alloc]init]; 

    //The key here is to save the GIF file or URL download directly into a NSData instead of making it a UIImage. Bypassing UIImage will let the GIF file keep the animation. 
    NSString *filePath = [[NSBundle mainBundle] pathForResource: @"loader" ofType: @"gif"]; 
    NSData *gifData = [NSData dataWithContentsOfFile: filePath]; 
    imageViewAnimatedGif.image = [UIImage sd_animatedGIFWithData:gifData]; 

    HUD.customView = [[UIImageView alloc] initWithImage:imageViewAnimatedGif.image]; 
    CABasicAnimation *rotation; 
    rotation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"]; 
    rotation.fromValue = [NSNumber numberWithFloat:0]; 
    rotation.toValue = [NSNumber numberWithFloat:(2 * M_PI)]; 
    rotation.duration = 0.7f; // Speed 
    rotation.repeatCount = HUGE_VALF; // Repeat forever. Can be a finite number. 
    rotation.removedOnCompletion = false; 
    [HUD.customView.layer addAnimation:rotation forKey:@"Spin"]; 
    HUD.mode = MBProgressHUDModeCustomView; 
    HUD.contentColor = [UIColor redColor]; 
    [HUD showAnimated:YES]; 
} 

サンプルローダーの: loader

0

あなたは一連の画像をアニメーション化UIImageViewを作成することによってこれを行い、その後、UIImageViewことであるためにあなたのMBProgressHUDののCustomViewプロパティを設定することができます。はい、あなたはGIF画像を使用することができます...あなたのiOS Appのカ​​スタムアクティビティインジケータを作成

link to the tutorial

それは助けを願って

0

は、ここで画像をアニメーション化UIImageViewを作成する方法についてのチュートリアルがあります代わりに、デフォルトのロードの... MBProgressHUDとの

MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES]; 
hud.label.text = @"loading…"; 
hud.mode = MBProgressHUDModeCustomView; 
UIImage *image = [[UIImage imageNamed:@"toast_loading"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; 
UIImageView *imgView = [[UIImageView alloc] initWithImage:image]; 
CABasicAnimation *anima = [CABasicAnimation animationWithKeyPath:@"transform.rotation"]; 
anima.toValue = http://www.cnblogs.com/Apologize/p/@(M_PI*2); 
anima.duration = 1.0f; 
anima.repeatCount = 10; 
[imgView.layer addAnimation:anima forKey:nil]; 
hud.customView = imgView; 

hud.bezelView.color = [UIColor colorWithWhite:0.0 alpha:1]; 
// text color 
hud.contentColor = [UIColor whiteColor]; 
hud.animationType = MBProgressHUDAnimationFade;