服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - IOS - 如何在iphone IOS设备上使用二维码

如何在iphone IOS设备上使用二维码

2020-12-23 15:19mxABC IOS

深度解析iPhone ios设备上使用二维码是本文要介绍的内容,二维码是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的。不多说,我们直接来脚本之家学习内容详解,感兴趣的朋友一

下面给大家介绍下二维码简介

二维码 (2-dimensional bar code) 是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的;在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理: 二维条码/二维码能够在横向和纵向两个方位同时表达信息,因此能在很小的面积内表达大量的信息。

下面介绍下如何在苹果ios设备上使用二维码:

1. 扫描二维码(解码)

扫描二维码的开源库有很多如 zbar、zxing等。在此以zbar作为例子构建二维码扫码应用。

首先在github上下载zbar sdk

地址https://github.com/bmorton/zbarsdk

打开压缩包,其中有zbarsdk 文件夹

将zbarsdk 文件夹包含到项目中来

如何在iphone IOS设备上使用二维码(finder)
如何在iphone IOS设备上使用二维码(xcode)

其中包含一个libzbar.a的静态库

接着往项目中添加framework框架及链接库(动态库、静态库)。

在项目属性targetssummary 中找到linked frameworks and libraries 添加

avfoundation.framwork, coremedia.framework, corevideo.framework, libiconv.dylib 和libzbar.a (如图)

如何在iphone IOS设备上使用二维码

如何在iphone IOS设备上使用二维码

然后在使用的地方引入头文件

?
1
#import "zbarsdk.h"

调用zbar的类必须实现zbarreaderdelegate协议

如:uiviewcontroller <zbarreaderdelegate>在- (void) imagepickercontroller: (uiimagepickercontroller*) reader

didfinishpickingmediawithinfo: (nsdictionary*) info

最后在协议方法中通过info获取结果值

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
id<nsfastenumeration> results = [info objectforkey: zbarreadercontrollerresults];
zbarsymbol *symbol = nil;
for(symbol in results)
// example: just grab the first barcode 
break;
 
 
// example: do something useful with the barcode data 
resulttext.text = symbol.data;
[cpp] view plaincopy
id<nsfastenumeration> results = [info objectforkey: zbarreadercontrollerresults];
zbarsymbol *symbol = nil;
for(symbol in results)
// example: just grab the first barcode
break
// example: do something useful with the barcode data
resulttext.text = symbol.data;

文档地址http://zbar.sourceforge.net/iphone/sdkdoc/
二维码开源库zxing的加载过程与此类似,但是zxing默认并不支持一维码的扫描,而zbar是支持的。

2. 生成二维码(编码)

在生成二维码的库中qrencoder 比较好用。zxing库的android版本是带java版的编码库的但不知为何没有c++版的解码库,故在ios上也没法解码,如果应用中既要生成二维码又要扫描二维码就有可能要带两套不同的库。

首先同样是在github 上下载到sdk库

地址https://github.com/jverkoey/objqrencoder

解压后将源码库直接包含到项目中来(如图)

如何在iphone IOS设备上使用二维码

设置头文件路径,在target中building settings  search path

如何在iphone IOS设备上使用二维码

当然也可以直接将库编译成静态库libqrecoder.a

然后在包含进来

接着在frameworks 中添加静态库的引用

如何在iphone IOS设备上使用二维码

然后在使用该库的地方包含头文件

?
1
#import <qrencoder/qrencoder.h>

注意:二维码显示的时候有可能会因为图像的大小而做调整,所以需要包含系统库quartzcore.framework

最后就可以调用编码库了:

?
1
2
3
uiimage* image = [qrencoder encode:@"http://www.baidu.com/"];
 
uiimage* image = [qrencoder encode:@"http://www.baidu.com/"];

如何在iphone IOS设备上使用二维码

以上内容就是教大家如何在iphon ios设备上使用二维码,希望大家喜欢。

延伸 · 阅读

精彩推荐
  • IOSiOS自定义UICollectionViewFlowLayout实现图片浏览效果

    iOS自定义UICollectionViewFlowLayout实现图片浏览效果

    这篇文章主要介绍了iOS自定义UICollectionViewFlowLayout实现图片浏览效果的相关资料,需要的朋友可以参考下...

    jiangamh8882021-01-11
  • IOSiOS中MD5加密算法的介绍和使用

    iOS中MD5加密算法的介绍和使用

    MD5加密是最常用的加密方法之一,是从一段字符串中通过相应特征生成一段32位的数字字母混合码。对输入信息生成唯一的128位散列值(32个字符)。这篇文...

    LYSNote5432021-02-04
  • IOSiOS中UILabel实现长按复制功能实例代码

    iOS中UILabel实现长按复制功能实例代码

    在iOS开发过程中,有时候会用到UILabel展示的内容,那么就设计到点击UILabel复制它上面展示的内容的功能,也就是Label长按复制功能,下面这篇文章主要给大...

    devilx12792021-04-02
  • IOSiOS实现控制屏幕常亮不变暗的方法示例

    iOS实现控制屏幕常亮不变暗的方法示例

    最近在工作中遇到了要将iOS屏幕保持常亮的需求,所以下面这篇文章主要给大家介绍了关于利用iOS如何实现控制屏幕常亮不变暗的方法,文中给出了详细的...

    随风13332021-04-02
  • IOS详解iOS中多个网络请求的同步问题总结

    详解iOS中多个网络请求的同步问题总结

    这篇文章主要介绍了详解iOS中多个网络请求的同步问题总结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    liang199111302021-03-15
  • IOSiOS开发技巧之状态栏字体颜色的设置方法

    iOS开发技巧之状态栏字体颜色的设置方法

    有时候我们需要根据不同的背景修改状态栏字体的颜色,下面这篇文章主要给大家介绍了关于iOS开发技巧之状态栏字体颜色的设置方法,文中通过示例代码...

    梦想家-mxj8922021-05-10
  • IOSiOS开发之视图切换

    iOS开发之视图切换

    在iOS开发中视图的切换是很频繁的,独立的视图应用在实际开发过程中并不常见,除非你的应用足够简单。在iOS开发中常用的视图切换有三种,今天我们将...

    执着丶执念5272021-01-16
  • IOSiOS中滑动控制屏幕亮度和系统音量(附加AVAudioPlayer基本用法和Masonry简单使用)

    iOS中滑动控制屏幕亮度和系统音量(附加AVAudioPlayer基本用法和

    这篇文章主要介绍了iOS中滑动控制屏幕亮度和系统音量(附加AVAudioPlayer基本用法和Masonry简单使用)的相关资料,需要的朋友可以参考下...

    CodingFire13652021-02-26