开发者社区> 问答> 正文

iOS7 自带的扫码,怎么设置全屏显示,但是实际扫描区域只在一个框内

就是类似zbarsdk中哦个ZBarReaderView的scanCrop属性,找了半天文档了,不知道有没有什么方法实现

展开
收起
a123456678 2016-07-27 16:58:21 1902 0
1 条回答
写回答
取消 提交回答
  • 专门注册账户来回答这个问题,题注应该好好看看文档的,我就是因为信你找了半天没找到,才没有去看文档,(同时也怪我看帖子不仔细,才浪费了大量时间,其实早就看到《IOS二维码扫描,你需要注意的两件事》这篇文章),今天早上突然看了下文档才找到的,rectOfInterest属性。
    解决方法:
    _output = [[AVCaptureMetadataOutput alloc]init];
    CGSize size = self.view.bounds.size;
    CGRect cropRect = CGRectMake(50, 160, 220, 220);
    CGFloat p1 = size.height/size.width;
    CGFloat p2 = 1920./1080.; //使用了1080p的图像输出
    if (p1 < p2) {
    CGFloat fixHeight = self.view.bounds.size.width * 1920. / 1080.;
    CGFloat fixPadding = (fixHeight - size.height)/2;
    _output.rectOfInterest = CGRectMake((cropRect.origin.y + fixPadding)/fixHeight,
    cropRect.origin.x/size.width,
    cropRect.size.height/fixHeight,
    cropRect.size.width/size.width);
    } else {
    CGFloat fixWidth = self.view.bounds.size.height * 1080. / 1920.;
    CGFloat fixPadding = (fixWidth - size.width)/2;
    _output.rectOfInterest = CGRectMake(cropRect.origin.y/size.height,
    (cropRect.origin.x + fixPadding)/fixWidth,
    cropRect.size.height/size.height,
    cropRect.size.width/fixWidth);
    }

    2019-07-17 20:00:52
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
手淘iOS性能优化探索 立即下载
From Java/Android to Swift iOS 立即下载
深入剖析iOS性能优化 立即下载