您的位置:首页 > 移动开发 > IOS开发

iOS 使用ZBarSDK扫描条形码和二维码

2014-08-08 16:20 501 查看
ZBarSDK,一个比较优秀的开源项目,使用起来也很简单。

ZBarSDK是一个开源的SDK,可从这里下载到源码,该SDK实现了识别和读取各种条形码,包括EAN-13/UPC-A, UPC-E, EAN-8,
Code 128, Code 39, Interleaved 2 of 5 和 QR Code。

帮助文档:http://zbar.sourceforge.net/iphone/sdkdoc/index.html

Step1.使用ZBarSDK 需要导入的framework

1.AVFoundation.framework

2.CoreMedia.framework

3.CoreVideo.framework

4.QuartzCore.framework

5.libiconv.dylib

Step2.在ViewController.h 导入#import "ZBarSDK.h"

Step3.在ViewController.h 继承 <ZBarReaderDelegate>协议

Step4.写代码:

ViewController.h

1
#import
<uikit uikit.h="">
2
#import
"ZBarSDK.h"
3
4
@interface
ViewController : UIViewController <zbarreaderdelegate> @property (weak, nonatomic) IBOutlet UIImageView *imageView;
5
-
(IBAction)scan:(id)sender;
6
@property
(weak, nonatomic) IBOutlet UILabel *label;
7
8
9
@end</zbarreaderdelegate></uikit>
ViewController.m

01
#import
"ViewController.h"
02
#import
"ZBarSDK.h"
03
04
@interface
ViewController ()
05
06
@end
07
08
@implementation
ViewController
09
10
-
(
void
)viewDidLoad
11
{
12
[super
viewDidLoad];
13
//
Do any additional setup after loading the view, typically from a nib.
14
}
15
16
-
(
void
)didReceiveMemoryWarning
17
{
18
[super
didReceiveMemoryWarning];
19
//
Dispose of any resources that can be recreated.
20
}
21
22
23
-
(IBAction)scan:(id)sender {
24
 
25
 
26
ZBarReaderViewController
* reader = [ZBarReaderViewController
new
];
27
reader.readerDelegate
= self;
28
ZBarImageScanner
* scanner = reader.scanner;
29
[scanner
setSymbology:ZBAR_I25 config:ZBAR_CFG_ENABLE to:0];
30
31
reader.showsZBarControls
= YES;
32
 
33
[self
presentViewController:reader animated:YES completion:nil];
34
 
35
 
36
}
37
38
39
-(
void
)imagePickerController:(UIImagePickerController
*)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
40
{
41
id<nsfastenumeration>
results = [info objectForKey:ZBarReaderControllerResults];
42
ZBarSymbol
* symbol;
43
for
(symbol
in results)
44
break
;
45
 
46
_imageView.image
= [info objectForKey:UIImagePickerControllerOriginalImage];
47
 
48
[picker
dismissViewControllerAnimated:YES completion:nil];
49
 
50
_label.text
= symbol.data;
51
}
52
53
54
@end</nsfastenumeration>
在界面上放置一个UIImageView/UILabel/UIButton, UIImageView 用于显示扫描到的图像,UILabel用于显示扫描到的信息,UIButton 用于响应事件。

布局如图:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: