OC照片选择器MJPhotoBrowser
Posted hualuoshuijia
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OC照片选择器MJPhotoBrowser相关的知识,希望对你有一定的参考价值。
图片选择器,看cocoachina发现一个有趣的框架,很好用,分享一下,其实做出该功能我之前写过一篇博客,使用转场动画写的,就是图片的手势缩放没写,有兴趣可以看看
效果图:
github地址:https://github.com/coder-zwz/MJPhotoBrowser
使用:
#import "ViewController.h" #import "MJPhotoBrowser.h" @interface ViewController () { NSArray *_urls; } @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor groupTableViewBackgroundColor]; // 0.图片链接 _urls = @[@"http://ww4.sinaimg.cn/thumbnail/7f8c1087gw1e9g06pc68ug20ag05y4qq.gif", @"http://ww3.sinaimg.cn/thumbnail/8e88b0c1gw1e9lpr0nly5j20pf0gygo6.jpg", @"http://ww4.sinaimg.cn/thumbnail/8e88b0c1gw1e9lpr1d0vyj20pf0gytcj.jpg", @"http://ww3.sinaimg.cn/thumbnail/8e88b0c1gw1e9lpr1xydcj20gy0o9q6s.jpg", @"http://ww2.sinaimg.cn/thumbnail/8e88b0c1gw1e9lpr2n1jjj20gy0o9tcc.jpg", @"http://ww2.sinaimg.cn/thumbnail/8e88b0c1gw1e9lpr39ht9j20gy0o6q74.jpg", @"http://ww3.sinaimg.cn/thumbnail/8e88b0c1gw1e9lpr3xvtlj20gy0obadv.jpg", @"http://ww4.sinaimg.cn/thumbnail/8e88b0c1gw1e9lpr4nndfj20gy0o9q6i.jpg", @"http://ww3.sinaimg.cn/thumbnail/8e88b0c1gw1e9lpr57tn9j20gy0obn0f.jpg"]; // 1.创建9个UIImageView UIImage *placeholder = [UIImage imageNamed:@"timeline_image_loading.png"]; CGFloat width = 80; CGFloat height = 80; CGFloat margin = 5; CGFloat startX = (self.view.frame.size.width - 3 * width - 2 * margin) * 0.5; CGFloat startY = 80; for (int i = 0; i<9; i++) { UIImageView *imageView = [[UIImageView alloc] init]; [self.view addSubview:imageView]; // 计算位置 int row = i/3; int column = i%3; CGFloat x = startX + column * (width + margin); CGFloat y = startY + row * (height + margin); imageView.frame = CGRectMake(x, y, width, height); // 下载图片 [imageView setImageURLStr:_urls[i] placeholder:placeholder]; // 事件监听 imageView.tag = i; imageView.userInteractionEnabled = YES; [imageView addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapImage:)]]; // 内容模式 imageView.clipsToBounds = YES; imageView.contentMode = UIViewContentModeScaleAspectFill; } } - (void)tapImage:(UITapGestureRecognizer *)tap { NSInteger count = _urls.count; // 1.封装图片数据 NSMutableArray *photos = [NSMutableArray arrayWithCapacity:count]; for (int i = 0; i<count; i++) { // 替换为中等尺寸图片 NSString *url = [_urls[i] stringByReplacingOccurrencesOfString:@"thumbnail" withString:@"bmiddle"]; MJPhoto *photo = [[MJPhoto alloc] init]; photo.url = [NSURL URLWithString:url]; // 图片路径 photo.srcImageView = self.view.subviews[i]; // 来源于哪个UIImageView [photos addObject:photo]; } // 2.显示相册 MJPhotoBrowser *browser = [[MJPhotoBrowser alloc] init]; browser.currentPhotoIndex = tap.view.tag; // 弹出相册时显示的第一张图片是? browser.photos = photos; // 设置所有的图片 [browser show]; } @end
以上是关于OC照片选择器MJPhotoBrowser的主要内容,如果未能解决你的问题,请参考以下文章