您的位置:首页 > 移动开发 > IOS开发

iOS中显示GIF动画

2016-05-27 12:46 375 查看
 


ios中播放gif动画   




  iPhone SDK提供了多种动画手段,UIView、UIImageView和CALayer都支持动画。但如何处理常见的gif动画呢?UIWebView提供了答案,代码如下:

1. 使用UIWebView播放

    // 设定位置和大小

    CGRect frame = CGRectMake(50,50,0,0);

    frame.size = [UIImage imageNamed:@"guzhang.gif"].size;

    // 读取gif图片数据

    NSData *gif = [NSData dataWithContentsOfFile: [[NSBundle mainBundle] pathForResource:@"guzhang" ofType:@"gif"]];

    // WebView生成

    UIWebView *webView = [[UIWebView alloc] initWithFrame:frame];

    webView.userInteractionEnabled = NO;//用户不可交互

    [webView loadData:gif MIMEType:@"image/gif" textEncodingName:nil baseURL:nil];

    [self.view addSubview:webView];

    [webView release];

2.将gif图片分解成多张png图片,使用UIImageView播放。

代码如下:

UIImageView *gifImageView = [[UIImageView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    NSArray *gifArray = [NSArray arrayWithObjects:[UIImage imageNamed:@"1"],

                                                  [UIImage imageNamed:@"2"],

                                                  [UIImage imageNamed:@"3"],

                                                  [UIImage imageNamed:@"4"],

                                                  [UIImage imageNamed:@"5"],

                                                  [UIImage imageNamed:@"6"],

                                                  [UIImage imageNamed:@"7"],

                                                  [UIImage imageNamed:@"8"],

                                                  [UIImage imageNamed:@"9"],

                                                  [UIImage imageNamed:@"10"],

                                                  [UIImage imageNamed:@"11"],

                                                  [UIImage imageNamed:@"12"],

                                                  [UIImage imageNamed:@"13"],

                                                  [UIImage imageNamed:@"14"],

                                                  [UIImage imageNamed:@"15"],

                                                  [UIImage imageNamed:@"16"],

                                                  [UIImage imageNamed:@"17"],

                                                  [UIImage imageNamed:@"18"],

                                                  [UIImage imageNamed:@"19"],

                                                  [UIImage imageNamed:@"20"],

                                                  [UIImage imageNamed:@"21"],

                                                  [UIImage imageNamed:@"22"],nil];

    gifImageView.animationImages = gifArray; //动画图片数组

    gifImageView.animationDuration = 5; //执行一次完整动画所需的时长

    gifImageView.animationRepeatCount = 1;  //动画重复次数

    [gifImageView startAnimating];

    [self.view addSubview:gifImageView];

    [gifImageView release]; 

3.sdwebimage使用gif:UIImageView
* gifImage = [[UIImageView alloc]initWithFrame:CGRectMake(50, 80, 60, 60)];   

#import <SDWebImageManager.h>

 #import "UIImage+GIF.h"
    

    NSString *path = [[NSBundle mainBundle] pathForResource:@"getMoneyicon" ofType:@"gif"];

    NSData *data = [NSData dataWithContentsOfFile:path];

    UIImage * image = [UIImage sd_animatedGIFWithData:data];

    gifImage.image = image;

    [bgImage addSubview:gifImage];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: