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:nil baseURL:nil];
[self.view addSubview:webView];
[webView release];
方案一的弊端:
webview加载的gif无法设置大小尺寸
2.将gif图片分解成多张png图片,使用UIImageView播放。
代码如下:
UIImageView *gifImageView = [[UIImageViewalloc] initWithFrame:[[UIScreen mainScreen] bounds]];
NSArray *gifArray =[NSArray arrayWithObjects:[UIImage imageNamed:@"1"],
[UIImageimageNamed:@"2"],
[UIImageimageNamed:@"3"],
[UIImageimageNamed:@"4"],
[UIImageimageNamed:@"5"],
[UIImageimageNamed:@"6"],
[UIImageimageNamed:@"7"],
[UIImageimageNamed:@"8"],
[UIImageimageNamed:@"9"],
[UIImageimageNamed:@"10"],
[UIImageimageNamed:@"11"],
[UIImageimageNamed:@"12"],
[UIImageimageNamed:@"13"],
[UIImageimageNamed:@"14"],
[UIImageimageNamed:@"15"],
[UIImageimageNamed:@"16"],
[UIImageimageNamed:@"17"],
[UIImageimageNamed:@"18"],
[UIImageimageNamed:@"19"],
[UIImageimageNamed:@"20"],
[UIImageimageNamed:@"21"],
[UIImageimageNamed:@"22"],nil];
gifImageView.animationImages= gifArray; //动画图片数组
gifImageView.animationDuration= 5; //执行一次完整动画所需的时长
gifImageView.animationRepeatCount= 1; //动画重复次数
[gifImageViewstartAnimating];
[self.viewaddSubview:gifImageView];
[gifImageViewrelease];