直接上示例代码:
#import "MBProgressHUD.h" //导入头文件,也可以自己自定义
#import "UIImage+GIF.h" //导入SDWebImage中的UIImage+GIF.h文件,这个文件是关键
接下来就是ViewDidLoad中的代码了:
NSURL *url = [NSURL URLWithString:@"http://ww1.sinaimg.cn/large/85cccab3tw1esjw3dyui5g209q0bk1kx.jpg"];
NSData *data = [NSData dataWithContentsOfURL:url];
UIImage *image=[UIImage sd_animatedGIFWithData:data];
UIImageView *imageView = [[UIImageView alloc]init];
imageView.image =image;
MBProgressHUD *HUD = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
HUD.color = [UIColor grayColor];
HUD.mode = MBProgressHUDModeCustomView;
HUD.labelText = @"加载中。。。";
HUD.customView = imageView;
全部的代码都在这里了(哦!对了,不设置frame自动默认是图片大小,貌似UIImageView的大小最小就是图片的大小,再设怎么小都没有用)
这就完成了!
我们也可以用系统自带的方法来实现动画效果:
直接上代码:
// 提前准备好4张图片
UIImage *image1 = [UIImage imageNamed:@"/Users/jijiawei/Desktop/image1.jpg"];
UIImage *image2 = [UIImage imageNamed:@"/Users/jijiawei/Desktop/image2.jpg"];
UIImage *image3 = [UIImage imageNamed:@"/Users/jijiawei/Desktop/image3.jpg"];
UIImage *image4 = [UIImage imageNamed:@"/Users/jijiawei/Desktop/image4.jpg"];
// 创建一个UIImageView
UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(100, 200, 100, 100)];
// 将图片方法UIImageView的动画数组里面
imageView.animationImages = [NSArray arrayWithObjects:image1,image2,image3,image4, nil];
// 设置UIImageView的动画时间(动画用时)
imageView.animationDuration = 1.0;
// 永远重复(如果是1,就是1次,以此类推。。)
imageView.animationRepeatCount = 0;
// 开始动画
[imageView startAnimating];
// 添加到self.View上面
[self.view addSubview:imageView];
以下是全部代码截图: