_readerView = [[ZBarReaderView alloc]init];
_readerView.frame = [UIScreen mainScreen].bounds;
_readerView.allowsPinchZoom = NO;
_readerView.readerDelegate = self;
_readerView.tracksSymbols = NO;
_readerView.torchMode = 0; //关闭闪光灯
CGRect scanMaskRect = CGRectMake(0, 185, 320, 183);
//设置扫描区域
_readerView.scanCrop = [self getScanCrop:scanMaskRect readerViewBounds:_readerView.bounds];
[self.view addSubview:_readerView];
。。。。。
}
-(CGRect)getScanCrop:(CGRect)rect readerViewBounds:(CGRect)rvBounds
{
// CGFloat x,y,width,height;
//
// x = rect.origin.x / readerViewBounds.size.width;
// y = rect.origin.y / readerViewBounds.size.height;
// width = rect.size.width / readerViewBounds.size.width;
// height = rect.size.height / readerViewBounds.size.height;
//
// return CGRectMake(x, y, width, height);
//听马远说上边的方法应该是横屏模式时的区域,下边的才是竖屏
CGFloat x,y,width,height;
x = rect.origin.y / rvBounds.size.height;
y = 1 - (rect.origin.x + rect.size.width) / rvBounds.size.width;
width = (rect.origin.y + rect.size.height) / rvBounds.size.height;
height = 1 - rect.origin.x / rvBounds.size.width;
return CGRectMake(x, y, width, height);
}