你的位置:首页 > 操作系统

[操作系统]加载gif动态图的三种方式

准备:本地图片资源,GifView


加载Gif的三种方式:(从网络或者本地)

- (NSData *)loadDataForIndex:(NSInteger)index {  NSData *data = nil;  if (index == 0) {    //网络    data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://s14.sinaimg.cn/mw690/005APVsyzy6MFOsVFfv5d&690"]];  }else {    //本地    data = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"run" ofType:@"gif"]];  }  return data;}

1.GifView

  //第三方GifView(实现gif动画播放是通过将动画文件读取到CGImageSourceRef,然后用NSTimer来播放的。)    //- (id)initWithFrame:(CGRect)frame filePath:(NSString *)_filePath;  GifView *dataView = [[GifView alloc] initWithFrame:CGRectMake(0, 0, 100, 100) data:data];  [self.view addSubview:dataView];//  [dataView stopGif];

2.webView(不会出现内存问题)

  //webView  UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 120, 100, 100)];  webView.backgroundColor = [UIColor redColor];  webView.scalesPageToFit = YES;  [webView loadData:data MIMEType:@"image/gif" textEncodingName:nil baseURL:nil];  [self.view addSubview:webView];

3.帧动画

- (void)runGIFForImage {  UIImageView *gifImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 240, 100, 100)];  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 = 999; //动画重复次数  [gifImageView startAnimating];  [self.view addSubview:gifImageView];}