蒙板的代理方法如下:
/*** 蒙板生成,需设置代理,并在退出页面时取消代理*/-(void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx{ if (layer == self.maskLayer) { UIGraphicsBeginImageContextWithOptions(self.maskLayer.frame.size, NO, 1.0); CGContextSetFillColorWithColor(ctx, [UIColor colorWithRed:0 green:0 blue:0 alpha:0.6].CGColor); CGContextFillRect(ctx, self.maskLayer.frame); CGRect scanFrame = [self.view convertRect:self.scanView.frame fromView:self.scanView.superview]; CGContextClearRect(ctx, scanFrame); }}
二维码扫描的回调方法的具体实现如下:这里我用了一个遮盖的框架SVProgressHUD,模拟一下扫描的等待过程,瞎装一下。
-void)captureOutput:(AVCaptureOutput *)captureOutput didOutputMetadataObjects:(NSArray *)metadataObjects fromConnection:(AVCaptureConnection *)connection { NSString *stringValue; // 显示遮盖 [SVProgressHUD show]; if