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 = [NSDatadataWithContentsOfFile: [[NSBundlemainBundle]pathForResource:@"guzhang"ofType:@"gif"]];
// view生成
UIWebView*webView = [[UIWebView alloc] initWithFrame:frame];
webView.userInteractionEnabled =NO;//用户不可交互
[webView loadData:gif MIMEType:@"image/gif"textEncodingName:nilbaseURL:nil];
[self.view addSubview:webView];
[webView release];
2.将gif图片分解成多张png图片,使用UIImageView播放。
代码如下:
UIImageView *gifImageView = [[UIImageView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
NSArray*gifArray = [NSArrayarrayWithObjects:[UIImageimageNamed:@"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;//动画重复次数
[gifImageView startAnimating];
[self.view addSubview:gifImageView];
[gifImageView release];
网友评论