一.二维码Zbar库的引入:
1.把 ZBarSDK 文件夹添加到工程中;
2.引入需要的库
- AVFoundation.framework (weak)
- CoreMedia.framework (weak)
- CoreVideo.framework (weak)
- QuartzCore.framework
- libiconv.dylib
3.添加相关头文件
#import "ZBarSDK.h"
二.问题:
1.ZBar对于包含信息量比较大的二维码,无法识别,如下图:
原因:我把扫瞄的区域设置得太小导致了该问题,本质原因是不是因为分辨率不够就不知道,把扫瞄区域调大就可以了。
self.readerView = [[ZBarReaderView alloc]init]; self.readerView.frame = CGRectMake(0, 0, width, height); self.readerView.readerDelegate = self; self.readerView.torchMode = 0; self.readerView.allowsPinchZoom = NO; //原来扫瞄区域 CGRect scanMaskRect = CGRectMake(width/2-100, height/2-100, 200, 200); //调大扫瞄区域 CGRect scanMaskRect = CGRectMake(width/2-158, height/2-158, 316, 316); self.readerView.scanCrop = [self getScanCrop:scanMaskRect readerViewBounds:self.readerView.bounds]; UIImageView* overlay = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, width, height)];
2.使用ZBar打开扫瞄界面,然后按Home键,返回桌面,再返回app的扫瞄界面,发现扫瞄界面变黑了。
原因:本质原因不得而知,我再view将要消失时把扫瞄视图关闭就可以了
- (void)viewWillDisappear:(BOOL)animated { entry_log(); [self.readerView stop]; exit_log(); }