一款仿微信的多图片及视频浏览器,图片和视频以原尺寸显示,不会变形,双击图片可放大缩小,单击可消失,支持多张本地和网络图片以及网络视频混合查看,支持链式调用。不需要跳转到新的 viewcontroller,可以直接覆盖当前控制器显示。
1. 将 GQImageVideoViewer 文件夹添加到工程中。如果您工程中有 SDWebImage,则无需再次添加,如果没有,则需要将 SDWebImage 添加。
2. 在需要使用图片查看器的控制器中导入 "GQImageVideoViewer.h"
。
3. 在需要触发查看器的地方添加以下代码
注意: 图片数组中可以放置单独的 NSString, NSUrl, UIImage, UIImageView,如果单独放置这些类型,则默认为图片类型。
如果需要放置视频链接,则需要放字典或 GQBaseImageVideoModel 类型,数组的键为以下两个: (1).GQURLString(链接地址,支持类型为 NSUrl 和 NSString) (2).GQIsImageURL(是否为图片,如果是图片地址则传 YES,如果是视频地址则传 NO)。
如果需要自定义图片和视频显示界面,则需要分别继承基类:(分别在两个覆盖方法中写入需要自定义的样式。) (1).自定义图片显示 view:继承 GQBaseImageView 类,然后在子类中覆盖方法:- (void)configureImageView; (2).自定义视频显示 view:继承 GQBaseVideoView 类,然后在子类中覆盖方法:- (void)configureVideoView;
NSMutableArray *imageArray = [[NSMutableArray alloc] initWithCapacity:0];
NSURL *url = [NSURL URLWithString:@"http://static.tripbe.com/videofiles/20121214/9533522808.f4v.mp4"];
[imageArray addObjectsFromArray:@[@{GQIsImageURL:@(NO),
GQURLString:url},
@{GQIsImageURL:@(NO),
GQURLString:[NSURL URLWithString:@"http://192.168.31.152:8080/abc.mp4"]},
@{GQIsImageURL:@(NO),
GQURLString:url},
@{GQIsImageURL:@(YES),
GQURLString:@"http://cdn.cocimg.com/bbs/attachment/upload/30/5811301473150224.gif"},
@{GQIsImageURL:@(YES),
GQURLString:@"http://img0.imgtn.bdimg.com/it/u=513437991,1334115219&fm=206&gp=0.jpg"},
@{GQIsImageURL:@(YES),
GQURLString:@"http://h.hiphotos.baidu.com/image/pic/item/203fb80e7bec54e7f14e9ce2bf389b504ec26aa8.jpg"},
@{GQIsImageURL:@(YES),
GQURLString:@"http://f.hiphotos.baidu.com/image/pic/item/a8014c086e061d9507500dd67ff40ad163d9cacd.jpg"},
@{GQIsImageURL:@(YES)]];
//基本调用
[[GQImageVideoViewer sharedInstance] setImageArray:imageArray];//这是图片和视频数组
[GQImageVideoViewer sharedInstance].usePageControl = YES;//设置是否使用pageControl
[GQImageVideoViewer sharedInstance].selectIndex = 5;//设置选中的图片索引
[GQImageVideoViewer sharedInstance].achieveSelectIndex = ^(NSInteger selectIndex){
NSLog(@"%ld",selectIndex);
};//获取当前选中的图片索引
[GQImageVideoViewer sharedInstance].laucnDirection = GQLaunchDirectionRight;//设置推出方向
[[GQImageVideoViewer sharedInstance] showInView:self.navigationController.view];//显示GQImageViewer到指定view上
//链式调用
[GQImageVideoViewer sharedInstance]
.imageArrayChain(imageArray)
.usePageControlChain(NO)
.selectIndexChain(6)
.achieveSelectIndexChain(^(NSInteger selectIndex){
NSLog(@"%ld",selectIndex);
})
.launchDirectionChain(GQLaunchDirectionRight)
.showViewChain(self.navigationController.view);
特别说明,如果是抓取网络图片,iOS 9 以上的系统需要添加 plist 字段,否则无法抓取图片。
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
(1) 0.0.1
github 添加代码
(2) 0.0.2
添加 model,传递图片和视频数组更加方便。
(3) 0.0.3
将 tableView 替换为 collectionView,完美适配屏幕旋转,修复滑动不播放的 bug。
(4) 0.0.4
添加自定义图片展示和视频展示功能
(5) 等待一下
欢迎指出 bug 或者需要改善的地方,欢迎提出 issues,或者联系 qq:763007297,我会及时做出回应,如果您觉得好用的话,不妨给个 star 吧,您的每个 star 都是我持续维护的强大动力。