iOS利用UIImageView和WebView分别实现帧动画以及gif图片加载

利用UIImageView实现简单的帧动画

在开发中我们经常要展示一些具有动态效果的图片,就像我们所见到的gif格式的图片那样,其实这样简单的动画只要我们获得动画的每一帧图片,就可以利用UIImageView实现了。

比如我有以下一组图片资源


iOS利用UIImageView和WebView分别实现帧动画以及gif图片加载_第1张图片
图片资源来源于网络,侵权即删

我们可以利用这些图片实现一个小鸟飞翔的动画

NSArray * imgsArr = @[[UIImage imageNamed:@"1.jpg"],[UIImage imageNamed:@"2.jpg"],[UIImage imageNamed:@"3.jpg"],[UIImage imageNamed:@"4.jpg"],[UIImage imageNamed:@"5.jpg"],[UIImage imageNamed:@"6.jpg"],[UIImage imageNamed:@"7.jpg"]];
// 设置动画图片数组
[imageView setAnimationImages:imgsArr];
// 设置动画持续时间
[imageView setAnimationDuration:0.5];
// 设置动画重复次数  (当值为0时,表示无限次)  
imageView.animationRepeatCount = 5;
// 开始动画
[imageView startAnimating];

效果如下:


iOS利用UIImageView和WebView分别实现帧动画以及gif图片加载_第2张图片

利用UIWebView加载gif动图

我们使用UIWebView加载gif动图的主要目的是为了使用html中的标签,那么我们来看一下是如何实现的:

NSURL * baseURL = [[NSBundle mainBundle] resourceURL];  // 获得工程的根目录url
NSString * gifHtmlStr = @""; // 创建一段标签的html

UIWebView * gifWeb = [[UIWebView alloc] initWithFrame:CGRectMake(100, 100, 40, 40)];
[gifWeb loadHTMLString:gifHtmlStr baseURL:baseURL]; // 加载html语句
[self.view addSubview:gifWeb];
iOS利用UIImageView和WebView分别实现帧动画以及gif图片加载_第3张图片
效果

⚠️ 注意:创建的含有标签的语句中一定要对标签进行宽高样式的设置,不然gif图片会按照它本身的像素尺寸显示,这里是将宽高设置成与webView同宽高:style='width:100%; height:calc(width)',你也可以自定义标签的宽高,例如:style='width:20px; height:20px'

版权声明:出自MajorLMJ技术博客的原创作品 ,转载时必须注明出处及相应链接!

你可能感兴趣的:(iOS利用UIImageView和WebView分别实现帧动画以及gif图片加载)