iOS如何实现扫描二维码:
首先导入AVFoundation.framework,CoreMedia.framework,CoreVideo.framework,QuartzCore.framework
本实例采用storyboard拖拽控件的方法,节省代码:
在.m中:
#import "ViewController.h"
#import "ZBarSDK.h"
@interfaceViewController ()<ZBarReaderDelegate,UIAlertViewDelegate>
@property (strong,nonatomic) IBOutletUIImageView *myimage;
@property (strong,nonatomic) IBOutletUILabel *mylabel;
@property(nonatomic,strong)UIAlertView *myAlert;
@end
@implementation ViewController
- (void)viewDidLoad {
[superviewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
//扫描方法
- (IBAction)saomiao:(id)sender
{
//弹出扫描界面
ZBarReaderViewController *readerVC = [ZBarReaderViewControllernew];
readerVC.readerDelegate =self;
//扫描图片
ZBarImageScanner *sanner = readerVC.scanner;
[sanner setSymbology:ZBAR_I25config:ZBAR_CFG_ENABLEto:0];
//展示图片
readerVC.showsZBarControls =YES;
//调用相机进行扫描
[selfpresentViewController:readerVC animated:YEScompletion:^{
}];
}
//当扫描完后,调用的方法.,使用图片
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
//获取结果
id<NSFastEnumeration> results = [infoobjectForKey:ZBarReaderControllerResults];
ZBarSymbol *symbol;
//搜寻结果
for (symbol in results) {
break;
}
//在结果中付图片
self.myimage.image = [info objectForKey:UIImagePickerControllerOriginalImage];
[picker dismissViewControllerAnimated:YEScompletion:^{
}];
//判断是二维码还是条形码
if ([[symbol.datasubstringToIndex:4]isEqualToString:@"http"]) {
self.myAlert = [[UIAlertViewalloc]initWithTitle:@"提示"message:symbol.datadelegate:selfcancelButtonTitle:@"取消"otherButtonTitles:@"前往",nil];
[self.myAlertshow];
}else {
self.myAlert = [[UIAlertViewalloc]initWithTitle:@"提示"message:symbol.datadelegate:selfcancelButtonTitle:nilotherButtonTitles:@"确定",nil];
[self.myAlertshow];
}
self.mylabel.text = symbol.data;
}
- (IBAction)qianwang:(id)sender
{
}
- (void)didReceiveMemoryWarning {
[superdidReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end