您的位置:首页 > 其它

二维码扫描-zbar的使用

2015-10-06 00:17 411 查看
最近在做的项目中需要用到二维码扫描功能

ZXing也有对应的iOS版本,经过了解,ZBar也是一个常用的二维码识别软件,

并分别提供了iOS和Android的SDK可供使用,最终我选择了ZBar进行二维码识别,它的注释清晰,便于使用。

ZBar为我们提供了两种使用方式,一种是直接调用ZBar提供的ZBarReaderViewController打开一个扫描界面,

另一种方式 是使用ZBar提供的可以嵌在其他视图中的ZBarReaderView,实际项目中我们更可能会使用第二种方式,

这可以让我们对界面做更多的定制。

下面介绍第一种使用方法

#import "ViewController.h"
#import "ZBarReaderViewController.h"

@interface ViewController ()<ZBarReaderDelegate>

@end

@implementation ViewController

- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.

/*
二维码扫描:
iPhone最低支持版本如果7.0,用AVFoundation
如果是7.0以下,用zbar,zxing
*/

}

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
/**
二维码扫描控制器
*/
ZBarReaderViewController *readerVC = [[ZBarReaderViewController alloc] init];
//设置代理
readerVC.readerDelegate = self;
[self presentViewController:readerVC animated:YES completion:nil];
}

//完成扫描
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
NSLog(@"%@",info[ZBarReaderControllerResults]);

//    ZBarSymbolSet *results = info[ZBarReaderControllerResults];
id<NSFastEnumeration> results = info[ZBarReaderControllerResults];

//取值二维码信息
for (ZBarSymbol *symbol in results)
{
//取出二维码信息
NSString *message = symbol.data;

UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"扫描完成" message:message delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alertView show];

break;
}

}

- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

@end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: