二维码在生活中出现的频率越来越多了,大街小巷各个角落,它的出现更大的作用是代替功能单一的传统条形码,但是通常很多人第一次见到这个都不清楚这是干嘛用的。最初第一次见到可能就是买到的商品上有一个数字的条形码,在超市结账时,售货员会扫描条形码分辨这个商品的具体信息,所以通常人们对于此的认识只是停留在商品上一串神秘的数字图形,由此传统的条形码就是这一大串奇怪的数字。如今各种形态的二维码充斥在各式各样的商品上,正在走向普及的行列中

二维码中的内容常见分为三种:

1、纯文本

2、名片(有格式的文本)

3、URL(扫一扫)

然后分享我对二维码的理解

1、iOS7前

使用zbarsdk第三方框架来完成基本二维码功能,

由于生成二维码的工作计算量比较大,会在服务端生成

2、iOS7中

集成了二维码的生成和读取的功能

看似工作效率提高了,不用大量的计算,但生成的二维码图像清晰度略差

在这演示一下iOS7中二维码的基本使用

生成二维码的步骤:

1>导入CoreImage框架

2>通过滤镜CIFilter生成二维码

1、导入框架

2、搭建界面,监听文本框动作(设置文本框代理)

2、拥有图片属性,遵守代理协议,回车时关闭键盘

@interface ViewController () <UITextFieldDelegate>

@property (weak, nonatomic) IBOutlet UIImageView *qrImage;

@end

@implementation ViewController

- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
// 1. 关闭键盘
[self.view endEditing:YES]; return YES;
} @end

3、为了代码的复用性,创建NSString的分类,直接在分类中生成二维码图片

.h文件,提供方法返回字符串对应的二维码图像

@interface NSString (Helper)

/**
* 返回当前字符串对应的二维码图像
*
* 二维码的实现是将字符串传递给滤镜,滤镜直接转换生成二维码图片
*/
- (UIImage *)createQRCode; @end

.m文件,导入CoreImage头文件,通过滤镜生成图像

#import "NSString+Helper.h"
#import <CoreImage/CoreImage.h> @implementation NSString (Helper) /**
返回当前字符串对应的二维码图像 二维码的实现是将字符串传递给滤镜,滤镜直接转换生成二维码图片
*/
- (UIImage *)createQRCode
{
// 1. 实例化一个滤镜
CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"];
// 1.1 设置filter的默认值
// 因为之前如果使用过滤镜,输入有可能会被保留,因此,在使用滤镜之前,最好设置恢复默认值
[filter setDefaults]; // 2. 将传入的字符串转换为NSData
NSData *data = [self dataUsingEncoding:NSUTF8StringEncoding]; // 3. 将NSData传递给滤镜(通过KVC的方式,设置inputMessage)
[filter setValue:data forKey:@"inputMessage"]; // 4. 由filter输出图像
CIImage *outputImage = [filter outputImage]; // 5. 将CIImage转换为UIImage
return [UIImage imageWithCIImage:outputImage];
} @end

4、真机上运行,

成功识别

URL也成功生成

经过上面几步就实现了二维码的生成,转载请注明出处 @是否呢 http://www.cnblogs.com/wanglairo/

iOS开发-二维码的基本使用的更多相关文章

  1. iOS开发-二维码扫描和应用跳转

    iOS开发-二维码扫描和应用跳转   序言 前面我们已经调到过怎么制作二维码,在我们能够生成二维码之后,如何对二维码进行扫描呢? 在iOS7之前,大部分应用中使用的二维码扫描是第三方的扫描框架,例如Z ...

  2. IOS开发 二维码功能的实现

    原帖地址:http://yul100887.blog.163.com/blog/static/20033613520121020611299/ 如今二维码随处可见,无论是实物商品还是各种礼券都少不了二 ...

  3. iOS开发 二维码生成

    基于libqrencode的二维码生成 + (void)drawQRCode:(QRcode *)code context:(CGContextRef)ctx size:(CGFloat)size { ...

  4. iOS开发--二维码的扫描

    一.需要包含头文件 #import <AVFoundation/AVFoundation.h> 二.通过设置<AVCaptureMetadataOutputObjectsDelega ...

  5. iOS开发--二维码的生成

    一.需要包含头文件 #import <CoreImage/CoreImage.h> 二.示例代码 -- 以下生成的二维码不够清晰 如图: - (void)touchesBegan:(NSS ...

  6. iOS开发 - 二维码的生成与读取

    二维码的生成 从iOS7開始集成了二维码的生成和读取功能 此前被广泛使用的zbarsdk眼下不支持64位处理器 生成二维码的步骤: 导入CoreImage框架 通过滤镜CIFilter生成二维码 二维 ...

  7. Android开发--二维码开发应用(转载!)

    android项目开发 二维码扫描   基于android平台的二维码扫描项目,可以查看结果并且链接网址 工具/原料 zxing eclipse 方法/步骤   首先需要用到google提供的zxin ...

  8. iOS 原生二维码扫描和生成

    代码地址如下:http://www.demodashi.com/demo/12551.html 一.效果预览: 功能描述:WSLNativeScanTool是在利用原生API的条件下封装的二维码扫描工 ...

  9. iOS - QRCode 二维码

    1.QRCode 在 iOS7 以前,在 iOS 中实现二维码和条形码扫描,我们所知的有,两大开源组件 ZBar 与 ZXing. 这两大组件我们都有用过,这里总结下各自的缺点: 1.ZBar 在扫描 ...

随机推荐

  1. Grub实践

    为运行于虚拟机上的CentOS 6添加一块新硬件,提供两个主分区: (1) 为硬盘新建两个主分区:并为其安装grub: (2) 为硬盘的第一个主分区提供内核和ramdisk文件: 为第二个分区提供ro ...

  2. c++模板使用出错情况error LNK2019: unresolved external symbol "public: float __thiscall Compare<float>::min(void)" (?min@?$Compare@M@@QAEMXZ) referenced in function _main

    将类模板在头文件中定义,类的成员函数在头文件中声明,头文件中只留下接口,函数的实现在另一个.cpp文件中,这样编译出来错误error LNK2019: unresolved external symb ...

  3. ABP 仓储VIEW实现

    每个view实体加个ID 对应实体属性配置到View的列 View添加一列类似自增序列 ROW_NUMBER() OVER(ORDER BY getdate()) AS ID codefirst时 删 ...

  4. java中的static使用--静态变量、静态方法

    Java 中的 static 使用之静态变量 大家都知道,我们可以基于一个类创建多个该类的对象,每个对象都拥有自己的成员,互相独立.然而在某些时候,我们更希望该类所有的对象共享同一个成员.此时就是 s ...

  5. [goa]golang微服务框架学习--安装使用

      当项目逐渐变大之后,服务增多,开发人员增加,单纯的使用go来写服务会遇到风格不统一,开发效率上的问题. 之前研究go的微服务架构go-kit最让人头疼的就是定义服务之后,还要写很多重复的框架代码, ...

  6. orm获取关联表里的属性值

    ORM——关系对象模型 laravel中的Eloquent ORM用于和数据表互动,其中每个数据库表会和一个对应的「模型」互动,想要了解请查看官方文档或自行百度.获取关联表里的属性值代码如下: /** ...

  7. ORACLE 数据库需要创建索引的规则

    1.表的主键.外键必须有索引: 2.数据量超过300的表应该有索引: 3.经常与其他表进行连接的表,在连接字段上应该建立索引: 4.经常出现在Where子句中的字段,特别是大表的字段,应该建立索引: ...

  8. PHP操作Mongodb之增删改查篇

    之前,我讲解过PHP中mongodb扩展的安装,及启动,链接操作[忘记了?去看看吧!PHP操作Mongodb之一].本文主要就是讲在PHP中Mongodb的增加,查询,修改及删除数据的操作. 1.增加 ...

  9. Jquery div展开收缩

    <html> <meta http-equiv="Content-Type" content="text/html; charset=gb2312&qu ...

  10. 深入浅出Node.js(一):什么是Node.js

    Node.js从2009年诞生至今,已经发展了两年有余,其成长的速度有目共睹.从在github的访问量超过Rails,到去年底Node.jsS创始人Ryan Dalh加盟Joyent获得企业资助,再到 ...