iOS开发 - 二维码的扫描

  • 蒙板的代理方法如下:

    /***   蒙板生成,需设置代理,并在退出页面时取消代理*/-(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