ios播放动画

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

    // view生成

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


你可能感兴趣的:(播放动画)