iOS第三方二維碼生成與掃描
阿新 • • 發佈:2019-02-03
匯入第三方框架libqrencode(生成二維碼)和ZBarSDK(二維碼掃描)
匯入標頭檔案
#import "QRCodeGenerator.h"
#import "ZBarSDK.h"
建立兩個按鈕點選事件
點選按鈕一實現生成二維碼
- (IBAction)erWeiMaBtn1:(id)sender {
// 設定圖片框存放二維碼
UIImageView *imgView = [[UIImageView alloc]initWithFrame:CGRectMake((self.view.frame.size.width - 200)/2, 100, 200, 200)];
// 展示到主檢視
[self.view addSubview:self.imgView];
// 利用第三方方法實現自己想要的二維碼
imgView.image = [QRCodeGenerator qrImageForString:@"傻子" imageSize:self.imgView.frame.size.width];
}
點選按鈕二實現掃描二維碼
- (IBAction)erWeiMaBtn1:(id)sender {
//設定文字域(設定為全域性)
_textView = [[UITextView alloc]initWithFrame:CGRectMake((self .view.frame.size.width-300)/2, 430, 300, 300) textContainer:nil];
//設定背景顏色
_textView.backgroundColor = [UIColor blueColor];
//新增到主檢視
[self.view addSubview:self.textView];
ZBarReaderViewController *reader = [[ZBarReaderViewController alloc] init];
reader.readerDelegate =self;
//隱藏底部控制按鈕
reader.showsZBarControls =YES;
//設定自己定義的介面
//reader.cameraOverlayView = someView;(這個檢視可以自己定義,當然你也可以通過[reader.view addSubview:someView]的方式新增蒙版檢視,這樣可以做出自己想要的檢視效果)
//設定識別範圍(這裡的4個引數都是檢視比例~~不要搞錯奧(距離左邊的比例,距離上邊的比例,識別寬度的比例,識別高度的比例))
//reader.scanCrop =CGRectMake(0,0, 1,1);
//設定識別的引數
ZBarImageScanner *scanner = reader.scanner;
[scanner setSymbology:ZBAR_I25 //這個引數和to:後面的引數配合確定了識別的編碼範圍,根據需求調整,可以提高識別速度。
config:ZBAR_CFG_ENABLE
to:0];
[self presentViewController:reader animated:YES completion:nil];
}
//下面是委託方法
- (void) imagePickerController: (UIImagePickerController*) reader didFinishPickingMediaWithInfo: (NSDictionary*) info
{
id<NSFastEnumeration> results = [info objectForKey: ZBarReaderControllerResults];
ZBarSymbol *symbol =nil;
for(symbol in results)
break;
NSLog(@"%@",symbol.data);//列印識別的資料
//設定內容
_textView.text = symbol.data;
//
[reader dismissModalViewControllerAnimated:YES];
}
注意:在info.plist中填入可用相機掃描的白名單!