IOS 二维码扫描
Posted 吴雨欣
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IOS 二维码扫描相关的知识,希望对你有一定的参考价值。
// // ViewController.m // CX 二维码扫描 // // Created by ma c on 16/4/12. // Copyright ? 2016年 bjsxt. All rights reserved. // #import "ViewController.h" #import <AVFoundation/AVFoundation.h> @interface ViewController ()<AVCaptureMetadataOutputObjectsDelegate> @end @implementation ViewController - (void)viewDidLoad { } - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{ //创建捕捉会话 AVCaptureSession * session = [[AVCaptureSession alloc]init]; //添加输入设备 AVCaptureDevice * device = [AVCaptureDevice defaultDeviceWithMediaType:@"AVMediaTypeVideo"]; AVCaptureDeviceInput * input = [AVCaptureDeviceInput deviceInputWithDevice:device error:nil]; [session addInput:input]; //添加输出数据 AVCaptureMetadataOutput * output = [[AVCaptureMetadataOutput alloc]init]; [output setMetadataObjectsDelegate:self queue:dispatch_get_main_queue()]; [session addOutput:output]; //告诉元数据类型为二维码类型 //注意该方法在add后 否则崩溃 //测试需要真机稍有麻烦 就不截图了 [output setMetadataObjectTypes:@[AVMetadataObjectTypeQRCode]]; //添加扫描图层 AVCaptureVideoPreviewLayer *layer = [AVCaptureVideoPreviewLayer layerWithSession:session]; layer.frame = CGRectMake(10,20, self.view.frame.size.width, 400); [self.view.layer addSublayer:layer]; //开始扫描 [session startRunning]; //下面的方法适当的时候操作 //停止扫描 // [session stopRunning]; //移除图层 // [layer removeFromSuperlayer]; } - (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputMetadataObjects:(NSArray *)metadataObjects fromConnection:(AVCaptureConnection *)connection{ //metadataObjects 为扫描的后的数据 AVMetadataMachineReadableCodeObject * objc = [metadataObjects lastObject]; //我们想要的结果 NSLog(@"%@",objc.stringValue); } @end
以上是关于IOS 二维码扫描的主要内容,如果未能解决你的问题,请参考以下文章