博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS中显示GIF动画
阅读量:4289 次
发布时间:2019-05-27

本文共 2047 字,大约阅读时间需要 6 分钟。

 

ios中播放gif动画   

  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"]];

    // WebView生成

    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]; 

3.sdwebimage使用gif:UIImageView * gifImage = [[UIImageView alloc]initWithFrame:CGRectMake(50, 80, 60, 60)];   

#import <SDWebImageManager.h>

 #import "UIImage+GIF.h"

    
    NSString *path = [[NSBundle mainBundle] pathForResource:@"getMoneyicon" ofType:@"gif"];
    NSData *data = [NSData dataWithContentsOfFile:path];
    UIImage * image = [UIImage sd_animatedGIFWithData:data];
    gifImage.image = image;
    [bgImage addSubview:gifImage];

转载地址:http://ielgi.baihongyu.com/

你可能感兴趣的文章
网络案例分析之999皮炎平出鹤顶红色号的口红
查看>>
API网关在微服务架构中的应用,这一篇就够了
查看>>
微服务部署:蓝绿部署、滚动部署、灰度发布、金丝雀发布
查看>>
架构成长之路:Spring Cloud微服务如何实现熔断降级?
查看>>
JVM发生内存溢出的8种原因、及解决办法
查看>>
SpringBoot2.0 基础案例(12):基于转账案例,演示事务管理操作
查看>>
高性能负载均衡:nginx搭建tomcat集群
查看>>
Spring切面中的正则表达式
查看>>
一直再说高并发,多少QPS才算高并发?
查看>>
Git恢复之前版本的两种方法reset、revert(图文详解)
查看>>
Maven打包的三种方式
查看>>
电商场景:并发扣库存,怎么保证不超卖又不影响并发性能
查看>>
分布式事务处理方式总结
查看>>
延迟队列有哪些实现方案?说说你的看法
查看>>
厉害了!我们老大半小时把我的springboot项目并发提升几倍
查看>>
Spring 中Bean 的生命周期
查看>>
为什么要用枚举实现单例模式(避免反射、序列化问题)
查看>>
微服务架构下的分布式限流方案思考
查看>>
全网最详细的一篇SpringCloud总结
查看>>
消息中间件中的有序消息,其实是排队但是不能插队
查看>>