全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

iOS中使用ZBar扫描二维码自定义扫描界面功能

之前在Android中使用过ZXing识别二维码,ZXing也有对应的iOS版本,经过了解,ZBar也是一个常用的二维码识别软件,并分别提供了iOS和Android的SDK可供使用,最终我选择了ZBar进行二维码识别,它的注释清晰,便于使用。

ZBar为我们提供了两种使用方式,一种是直接调用ZBar提供的ZBarReaderViewController打开一个扫描界面,另一种方式是使用ZBar提供的可以嵌在其他视图中的ZBarReaderView,实际项目中我们更可能会使用第二种方式,这可以让我们对界面做更多的定制。

ZBar使用起来也非常简单,将ZBarSDK导入项目,在需要使用ZBar的文件中导入ZBarSDK.h头文件即可

#pragma mark 初始化扫描
- (void)InitScan
{
  readview = [ZBarReaderView new];
  readview.backgroundColor = [UIColor clearColor];
  readview.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);
  readview.readerDelegate = self;
  readview.allowsPinchZoom = YES;//使用手势变焦
  readview.trackingColor = [UIColor redColor];
  readview.showsFPS = NO;// 显示帧率 YES 显示 NO 不显示
  //readview.scanCrop = CGRectMake(0, 0, 1, 1);//将被扫描的图像的区域
  UIImage *hbImage=[UIImage imageNamed:@"pick_bg.png"];
  scanZomeBack=[[UIImageView alloc] initWithImage:hbImage];
  //添加一个背景图片
  CGRect mImagerect=CGRectMake((readview.frame.size.width-200)/2.0, (readview.frame.size.height-200)/2.0, 200, 200);
  [scanZomeBack setFrame:mImagerect];
  readview.scanCrop = [self getScanCrop:mImagerect readerViewBounds:readview.bounds];//将被扫描的图像的区域
  [readview addSubview:scanZomeBack];
  [readview addSubview:readLineView];
  [self.view addSubview:readview];
  [readview start];
}
#pragma mark 获取扫描区域
-(CGRect)getScanCrop:(CGRect)rect readerViewBounds:(CGRect)readerViewBounds
{
  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);
}
#pragma mark 扫描动画
-(void)loopDrawLine
{
  CGRect rect = CGRectMake(scanZomeBack.frame.origin.x, scanZomeBack.frame.origin.y, scanZomeBack.frame.size.width, 2);
  if (readLineView) {
    [readLineView removeFromSuperview];
  }
  readLineView = [[UIImageView alloc] initWithFrame:rect];
  [readLineView setImage:[UIImage imageNamed:@"line.png"]];
  [UIView animateWithDuration:3.0
             delay: 0.0
            options: UIViewAnimationOptionCurveEaseIn
           animations:^{
             //修改fream的代码写在这里
             readLineView.frame =CGRectMake(scanZomeBack.frame.origin.x, scanZomeBack.frame.origin.y+scanZomeBack.frame.size.height, scanZomeBack.frame.size.width, 2);
             [readLineView setAnimationRepeatCount:0];
           }
           completion:^(BOOL finished){
             if (!is_Anmotion) {
               [self loopDrawLine];
             }
           }];
  [readview addSubview:readLineView];
}
#pragma mark 获取扫描结果
- (void)readerView:(ZBarReaderView *)readerView didReadSymbols:(ZBarSymbolSet *)symbols fromImage:(UIImage *)image
{
  // 得到扫描的条码内容
  const zbar_symbol_t *symbol = zbar_symbol_set_first_symbol(symbols.zbarSymbolSet);
  NSString *symbolStr = [NSString stringWithUTF8String: zbar_symbol_get_data(symbol)];
  if (zbar_symbol_get_type(symbol) == ZBAR_QRCODE) {
    // 是否QR二维码
  }
  for (ZBarSymbol *symbol in symbols) {
    [sTxtField setText:symbol.data];
    break;
  }
  [readerView stop];
  [readerView removeFromSuperview];
}

github地址:https://github.com/ZBar/ZBar

以上所述是小编给大家介绍的iOS中使用ZBar扫描二维码自定义扫描界面,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# zbar扫描二维码  # ios  # 二维码扫描界面  # iOS实现二维码的扫描功能  # ios swift3.0实现二维码扫描、生成、识别示例代码  # IOS笔记061之二维码的生成和扫描  # ios原生二维码扫描  # iOS 条码及二维码扫描(从相册中读取条形码/二维码)及扫码过程中遇到的坑  # iOS自带原生二维码扫描的实现  # iOS 原生实现扫描二维码和条形码功能限制扫描区域  # iOS 二维码扫描和应用跳转  # 扫描二维码控件的封装iOS实现  # ios原生二维码扫描与生成的实现教程  # 将被  # 小编  # 也有  # 让我们  # 在此  # 两种  # 给大家  # 自定义  # 可供  # 写在  # 变焦  # 这可  # 使用过  # 所述  # 来也  # 第二种  # 给我留言  # 感谢大家  # 疑问请  # 有任何 


相关文章: 如何彻底删除建站之星生成的Banner?  青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?  C++如何使用std::optional?(处理可选值)  宝华建站服务条款解析:五站合一功能与SEO优化设置指南  css网站制作参考文献有哪些,易聊怎么注册?  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  建站之星如何一键生成手机站?  公司网站的制作公司,企业网站制作基本流程有哪些?  如何在景安服务器上快速搭建个人网站?  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?  Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解  微信推文制作网站有哪些,怎么做微信推文,急?  如何在腾讯云免费申请建站?  实惠建站价格推荐:2025年高性价比自助建站套餐解析  建站之星后台密码如何安全设置与找回?  重庆市网站制作公司,重庆招聘网站哪个好?  ,怎么用自己头像做动态表情包?  建站为何优先选择香港服务器?  淘宝制作网站有哪些,淘宝网官网主页?  建站主机选择指南:服务器配置与SEO优化实战技巧  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  成都网站制作报价公司,成都工业用气开户费用?  广州商城建站系统开发成本与周期如何控制?  一键制作网站软件下载安装,一键自动采集网页文档制作步骤?  如何基于PHP生成高效IDC网络公司建站源码?  网站插件制作软件免费下载,网页视频怎么下到本地插件?  建站主机选哪家性价比最高?  如何用wdcp快速搭建高效网站?  如何在建站之星绑定自定义域名?  建站OpenVZ教程与优化策略:配置指南与性能提升  新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化  如何确保西部建站助手FTP传输的安全性?  ,网页ppt怎么弄成自己的ppt?  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  黑客入侵网站服务器的常见手法有哪些?  ,如何利用word制作宣传手册?  制作网站的过程怎么写,用凡科建站如何制作自己的网站?  如何快速搭建响应式可视化网站?  网站制作的步骤包括,正确网址格式怎么写?  如何登录建站主机?访问步骤全解析  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  历史网站制作软件,华为如何找回被删除的网站?  建站主机是否属于云主机类型?  一键网站制作软件,义乌购一件代发流程?  C++中的Pimpl idiom是什么,有什么好处?(隐藏实现) 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。