#pragma mark 打开手电筒
+ (void)openFlashLight {
AVCaptureDevice *captureDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
NSError *error = nil;
if ([captureDevice hasTorch]) {
BOOL locked = [captureDevice lockForConfiguration:&error];
if (locked) {
captureDevice.torchMode = AVCaptureTorchModeOn;
[captureDevice unlockForConfiguration];
}
}
}
#pragma mark 关闭手电筒
+ (void)closeFlashLight {
AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
if ([device hasTorch]) {
[device lockForConfiguration:nil];
[device setTorchMode:AVCaptureTorchModeOff];
[device unlockForConfiguration];
}
}
QRCodeScanView
这个类是将这个界面单独封装出来,便于自定义
在.h文件中有个枚举用来标识二维码扫描四周角标的位置:
typedef enum : NSUInteger {
CornerLoactionDefault,//默认与边框同中心点
CornerLoactionInside,//在边框线内部
CornerLoactionOutside,//在边框线外部
} CornerLoaction;
自定义view各个属性:
@property (nonatomic, strong) UIColor *borderColor;/** 边框颜色*/
@property (nonatomic, assign) CornerLoaction cornerLocation;/** 边角位置 默认default*/
@property (nonatomic, strong) UIColor *cornerColor;/** 边角颜色 默认正保蓝#32d2dc*/
@property (nonatomic, assign) CGFloat cornerWidth;/** 边角宽度 默认2.f*/
@property (nonatomic, assign) CGFloat backgroundAlpha;/** 扫描区周边颜色的alpha 默认0.5*/
@property (nonatomic, assign) CGFloat timeInterval;/** 扫描间隔 默认0.02*/
@property (nonatomic, strong) UIButton *lightBtn;/** 闪光灯*/
暴露外部调用的方法:
/**
添加定时器
*/
- (void)addTimer;
/**
移除定时器
*/
- (void)removeTimer;
/**
根据灯光判断
*/
- (void)lightBtnChangeWithBrightnessValue:(CGFloat)brightnessValue;











