在公司开发项目中须要弹出展现从网络上下载的图片,并提供滑动展现功能。目前采用同事开发的图片浏览器,后期有时间想优化一下。因此重温了下之前开发的相似微博的项目中的图片浏览器代码,并抽取出来封装成了如今这个框架。git
目前功能还比较简陋,有时间慢慢优化。扩展本地和网络图片以及其余支持吧。github
Github下载地址:https://github.com/jakciehoo/HooPhotoBrowser数组
实现功能浏览器
1.设置图片地址数组,从地址获取当前选择图片,而后展现当前图片(可设置默认显示第几张图片)微信
2.提供图片下载进度动画,下载成功显示下载图片,下载过程当中给出进度提示动画,下载失败提供下载失败提示。网络
3.工具栏展现图片信息,并提供保存到本地相册功能框架
4.对代码作了内存优化。工具
效果图展现:学习
添加到项目优化
1.项目依赖SDWebImage,所以须要你的项目添加SDWebImage框架,下载地址:https://github.com/rs/SDWebImage
2.将Demo中的HooPhotoBrowser拷贝到项目中。
调用方法
HooPhotoBrowser的调用方法,能够参考demo。这里我先把调用代码写出来。
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. UIImageView *imageView = [[UIImageView alloc] init]; imageView.frame = CGRectMake(50, 50, 200, 200); imageView.image = [UIImage imageNamed:@"uc_header_background.jpg"]; [self.view addSubview:imageView]; imageView.userInteractionEnabled = YES; UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapToShow:)]; tap.numberOfTapsRequired = 1; [imageView addGestureRecognizer:tap]; } - (void)tapToShow :(UITapGestureRecognizer *)tap { UIImageView *tapView = (UIImageView *)tap.view; NSArray *images = @[@"http://images.asiatravel.com/Hotel/8016/8016facade.jpg", @"http://images.asiatravel.com/Hotel/8016/8016logo.jpg", @"http://images.asiatravel.com/Hotel/8016/8016bathroom.jpg", @"http://images.asiatravel.com/Hotel/8016/8016standard_room.jpg", @"http://images.asiatravel.com/Hotel/8016/8016lobby-cafe.jpg", @"http://images.asiatravel.com/Hotel/8016/8016lobby-reception.jpg", @"http://images.asiatravel.com/Hotel/8016/8016pool.jpg"]; NSInteger i = 0; NSMutableArray *pArray = [NSMutableArray array]; for (NSString *url in images) { HooPhoto *photo = [[HooPhoto alloc] init]; photo.url = [NSURL URLWithString:url]; photo.index = i; photo.sourceImageView = tapView; [pArray addObject:photo]; i++; } HooPhotoBrowser *photoBrowser = [[HooPhotoBrowser alloc] init]; photoBrowser.currentPhotoIndex = 0; photoBrowser.photos = pArray; [photoBrowser show]; }
最后欢迎你们参考学习。并欢迎你们关注个人微信公众号,互相学习。
个人微信公众号:丁丁的coding日记