我有一个动画gif文件,想在我的iPhone应用程序中使用,但是动画不起作用。有人知道如何修复它吗?
如果你有一系列的图片需要进行动画,你可以使用 UIImageView 轻松实现:
UIImage *blur5 = [UIImage imageNamed:@"blur5.png"];
UIImage *blur6 = [UIImage imageNamed:@"blur6.png"];
self.imageView.animationImages = [[NSArray alloc] initWithObjects:blur5, blur6, nil];
self.imageView.animationRepeatCount = 5;
[self.imageView startAnimating];
我发现这比尝试使用UIWebView更容易。
UIWebView无法正确显示所有的GIF内容。您需要使用UIImageView,但iPhone OS不支持动画GIF,并且只显示第一帧。
因此,您需要先提取所有其他帧。
以下是一个简单的示例代码: http://pliep.nl/blog/2009/04/iphone_developer_decoding_an_animated_gif_image_in_objc
NSArray * imageArray = [[NSArray alloc] initWithObjects:[UIImage imageNamed:@"1.png"], [UIImage imageNamed:@"2.png"], nil]; //this will be the frames of animation images in sequence.
ringImage = [[UIImageView alloc]initWithFrame:CGRectMake(100,200,600,600)];
ringImage.animationImages = imageArray;
ringImage.animationDuration = 1.5;//this the animating speed which you can modify
ringImage.contentMode = UIViewContentModeScaleAspectFill;
[ringImage startAnimating];//this method actually does the work of animating your frames.
另一个选择是在您的应用程序中解码gif,然后将其“帧服务”到OpenGL对象。这种方式不太可能因为大型gif而耗尽内存。