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

iOS 中 GIF 图片的显示方法

2014-08-25 13:50 483 查看
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];

注意:这个方法,如果gif动画每桢间的时间间隔不同,不能达到此效果。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  uiwebview gif UIImageView