二维码相关

一.二维码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();
}
原文地址:https://www.cnblogs.com/qc0815/p/3191264.html