美文网首页
iOS原生二维码扫描扫描区域

iOS原生二维码扫描扫描区域

作者: 往事不许提 | 来源:发表于2019-05-10 10:26 被阅读0次

    扫描区域默认是全屏扫描的,可以通过设置AVCaptureMetadataOutput的rectOfInterest属性来设置扫描区域:rectOfInterest是CGRect类型,但是默认值为CGRectMake(0,0,1,1),其中的值是比例;
    用一个方法来计算这个比例关系:

    - (CGRect)rectOfInterestsByScanViewRect:(CGRect)rect {
          CGFloat width = CGRectGetWidth(self.view.frame);
          CGFloat height = CGRectGetHeight(self.view.frame);
          CGFloat x = rect.origin.y/height;
          CGFloat y = rect.origin.x/width;
          CGFloat w = CGRectGetHeight(rect)/height;
          CGFloat h = CGRectGetWidth(rect)/width;
          return CGRectMake(x,y,w,h);
    }
    

    即:
    屏幕为(x,y,w,h),扫描区域为(x1,y1,w1,h1)则rectOfInterest应该设置为CGRectMake(y1/y, x1/x , h1/h, w1/w),原因是坐标原点在右上角,和常规在左上角不同;

    相关文章

      网友评论

          本文标题:iOS原生二维码扫描扫描区域

          本文链接:https://www.haomeiwen.com/subject/vbcgoqtx.html