ios中播放gif动画

来源:互联网 发布:数控车t型螺纹编程实例 编辑:程序博客网 时间:2024/06/05 14:23
原文地址:ios中播放gif动画作者:滴水穿石

     iPhoneSDK提供了多种动画手段,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"]];
    //view生成
    UIWebView*webView = [[UIWebView alloc] initWithFrame:frame];
   webView.userInteractionEnabled =NO;//用户不可交互
    [webViewloadData:gif MIMEType:@"image/gif" textEncodingName:nilbaseURL:nil];
    [self.viewaddSubview:webView];
    [webViewrelease];


2.将gif图片分解成多张png图片,使用UIImageView播放。
代码如下:
 UIImageView *gifImageView = [[UIImageView alloc]initWithFrame:[[UIScreen mainScreen] bounds]];
    NSArray*gifArray = [NSArray arrayWithObjects:[UIImageimageNamed:@"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.viewaddSubview:gifImageView];
   [gifImageView release];

注意:这个方法,如果gif动画每桢间的时间间隔不同,不能达到此效果。
0 0