iOS开发-二维码的基本使用

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

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

1、纯文本

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

3、URL(扫一扫)

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

1、iOS7前

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

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

2、iOS7中

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

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

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

生成二维码的步骤:

1>导入CoreImage框架

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

1、导入框架

iOS开发-二维码的基本使用

iOS开发-二维码的基本使用

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

iOS开发-二维码的基本使用

iOS开发-二维码的基本使用

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、真机上运行,

iOS开发-二维码的基本使用

成功识别

iOS开发-二维码的基本使用

URL也成功生成

iOS开发-二维码的基本使用

iOS开发-二维码的基本使用

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

上一篇:一招教你如何用Word直接打开PDF进行编辑,无需下载转换软件


下一篇:Leetcode Copy List with Random Pointer