# LGPhotoBrowser
**Repository Path**: psppsp/LGPhotoBrowser
## Basic Information
- **Project Name**: LGPhotoBrowser
- **Description**: 照片浏览器,相册选择器,自定义照相机(支持单拍、连拍)
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-06-30
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# LGPhotoBrowser []() [](https://raw.githubusercontent.com/GIKICoder/GDataBase/master/LICENSE)
# 前言
- 此框架经过实际项目锤炼,使用过程中改善了众多bug,在稳定性、流畅性以及内存消耗方面做了大量优化。但难免还有缺陷,希望同仁们在使用过程中发现并指正,并提issue!
- 注意:如果照相机不需要连拍功能,建议采用系统相机,经测试,自定义相机的体验和内存消耗均劣于系统相机。
- 相册优化方法:[iOS中自定义相册功能性能优化](http://blog.csdn.net/gang544043963/article/details/49329261)
- 如果对您有帮助,记得star,动力源自鼓励
# 简介
- 此框架包含三个模块:图片浏览器,相册选择器,自定义照相机(支持单拍、连拍);
- 界面仿照微信的样式;
- 加载本地照片速度快;
- 图片浏览器采用后台预加载手段,完全消除大图浏览的卡顿现象;
- 具备相册已选组别记忆功能;
- 支持夜间模式;
# 1.图片浏览器
# 2.相册选择器
# 3.自定义相机
# 添加到工程
第一步:拷贝Class文件文件夹和Images文件夹到工程.
第二步:'#import "LGPhoto.h"'
备注:
- 自定义相册通常会根据需求做调整,所以不支持cocoaPods
- 用到的第三方:
|图片下载|等待框 |
|:------:|:--------------------:|
|SDWebImage |DACircularProgressView|
如果你的项目中已经存在这两个框架,请手动删除Third文件夹中对应的框架。
# 初始化
初始化相册选择器,里面包括大图浏览
```
/**
* 初始化相册选择器
*/
- (void)presentPhotoPickerViewControllerWithStyle:(LGShowImageType)style {
LGPhotoPickerViewController *pickerVc = [[LGPhotoPickerViewController alloc] initWithShowType:style];
pickerVc.status = PickerViewShowStatusCameraRoll;
pickerVc.maxCount = 9; // 最多能选9张图片
pickerVc.delegate = self;
self.showType = style;
[pickerVc showPickerVc:self];
}
```
如果单独使用图片浏览器,也很简单:初始化+实现数据源方法
```
/**
* 初始化图片浏览器
*/
- (void)pushPhotoBroswerWithStyle:(LGShowImageType)style{
LGPhotoPickerBrowserViewController *BroswerVC = [[LGPhotoPickerBrowserViewController alloc] init];
BroswerVC.delegate = self;
BroswerVC.dataSource = self;
BroswerVC.showType = style;
self.showType = style;
[self presentViewController:BroswerVC animated:YES completion:nil];
}
```
```
#pragma mark - LGPhotoPickerBrowserViewControllerDataSource
- (NSInteger)photoBrowser:(LGPhotoPickerBrowserViewController *)photoBrowser numberOfItemsInSection:(NSUInteger)section{if (self.showType == LGShowImageTypeImageBroswer) {
return self.LGPhotoPickerBrowserPhotoArray.count;
} else if (self.showType == LGShowImageTypeImageURL) {
return self.LGPhotoPickerBrowserURLArray.count;
} else {
NSLog(@"非法数据源");
return 0;
}
}
//在这里,需要把图片包装成LGPhotoPickerBrowserPhoto对象,然后return即可。
- (id)photoBrowser:(LGPhotoPickerBrowserViewController *)pickerBrowser photoAtIndexPath:(NSIndexPath *)indexPath{
if (self.showType == LGShowImageTypeImageBroswer) {
return [self.LGPhotoPickerBrowserPhotoArray objectAtIndex:indexPath.item];
} else if (self.showType == LGShowImageTypeImageURL) {
return [self.LGPhotoPickerBrowserURLArray objectAtIndex:indexPath.item];
} else {
NSLog(@"非法数据源");
return nil;
}
}
```
详见ViewController.m,注释很清楚
# 环境支持
iOS7及更高
# LICENSE
LGPhotoBrowser is released under the MIT license. See LICENSE for details.