之前在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小时内与您取得联系。