zoukankan      html  css  js  c++  java
  • 二维码扫描

     使用ZBar来读取条形码和二维码的方法

     
    原文地址:http://blog.csdn.net/remote_roamer/article/details/7657845

    1.使用ZBar项目。下载地址是: http://zbar.sourceforge.net/iphone/index.html

    2.新建一个项目。

    3.导入 ZBar的sdk。把ZBar SDK的目录拉入项目,然后选中copy选项

    4.在项目文件的target中加入 以下framework

    5.在appDelegate文件中加入 标记部分的代码

    1. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions  
    2. {  
    3.     self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];  
    4.     // Override point for customization after application launch.  
    5.     self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease];  
    6.     self.window.rootViewController = self.viewController;  
    7.     [self.window makeKeyAndVisible];  
    8.       
    9.       
    10.     // force view class to load so it may be referenced directly from NIB  
    11.     [ZBarReaderView class];  
    12.       
    13.       
    14.     return YES;  
    15. }  

    注意此代码:


     
    1. // force view class to load so it may be referenced directly from NIB  
    2.  [ZBarReaderView class];  
    6.在.h文件中加入   ZBarReaderViewDelegate的实现,代码如下:

     
    1. //  
    2. //  ViewController.h  
    3. //  FootSafety  
    4. //  
    5. //  Created by 泽宇 徐 on 12-6-12.  
    6. //  Copyright (c) 2012年 __MyCompanyName__. All rights reserved.  
    7. //  
    8.   
    9. #import   
    10. #import "ZBarSDK.h"  
    11.   
    12. @interface ViewController : UIViewController  
    13. {  
    14.     IBOutlet UILabel  * label ;  
    15.     ZBarReaderView *readerView;  
    16.     ZBarCameraSimulator *cameraSim;  
    17. }  
    18.   
    19. @property(nonatomic,retain) UILabel * label ;  
    20. @property (nonatomic, retain) IBOutlet ZBarReaderView *readerView;  
    21.   
    22.   
    23. @end  

    7.在.m文件中要实现的主要方法是:


     
    1. - (void) readerView: (ZBarReaderView*) view  
    2.      didReadSymbols: (ZBarSymbolSet*) syms  
    3.           fromImage: (UIImage*) img  
    4. {  
    5.     // do something useful with results  
    6.     for(ZBarSymbol *sym in syms) {  
    7.         self.label.text = sym.data;  
    8.         break;  
    9.     }  
    10. }  

    这里是功能是读取照片信息,把条码放如label显示
    1. -(void) viewDidAppear:(BOOL)animated  
    2. {  
    3.     // run the reader when the view is visible  
    4.     [readerView start];  
    5. }  

    这个是在显示视图的时候,启动摄像头,开始扫描


     

    1. - (void)viewDidLoad  
    2. {  
    3.     [super viewDidLoad];  
    4.     // Do any additional setup after loading the view, typically from a nib.  
    5.       
    6.     // the delegate receives decode results  
    7.     readerView.readerDelegate = self;  
    8.       
    9.     // you can use this to support the simulator  
    10.     if(TARGET_IPHONE_SIMULATOR) {  
    11.         cameraSim = [[ZBarCameraSimulator alloc]  
    12.                      initWithViewController: self];  
    13.         cameraSim.readerView = readerView;  
    14.     }  
    15.   
    16. }  

    在初始化的时候,设置托管。

    .m文件所有内容是:


     
    1. //  
    2. //  ViewController.m  
    3. //  FootSafety  
    4. //  
    5. //  Created by 泽宇 徐 on 12-6-12.  
    6. //  Copyright (c) 2012年 __MyCompanyName__. All rights reserved.  
    7. //  
    8.   
    9. #import "ViewController.h"  
    10.   
    11. @interface ViewController ()  
    12.   
    13. @end  
    14.   
    15. @implementation ViewController  
    16. @synthesize label;  
    17. @synthesize readerView;  
    18.   
    19. - (void)viewDidLoad  
    20. {  
    21.     [super viewDidLoad];  
    22.     // Do any additional setup after loading the view, typically from a nib.  
    23.       
    24.     // the delegate receives decode results  
    25.     readerView.readerDelegate = self;  
    26.       
    27.     // you can use this to support the simulator  
    28.     if(TARGET_IPHONE_SIMULATOR) {  
    29.         cameraSim = [[ZBarCameraSimulator alloc]  
    30.                      initWithViewController: self];  
    31.         cameraSim.readerView = readerView;  
    32.     }  
    33.   
    34. }  
    35.   
    36. -(void) viewDidAppear:(BOOL)animated  
    37. {  
    38.     // run the reader when the view is visible  
    39.     [readerView start];  
    40. }  
    41.   
    42.   
    43. - (void) readerView: (ZBarReaderView*) view  
    44.      didReadSymbols: (ZBarSymbolSet*) syms  
    45.           fromImage: (UIImage*) img  
    46. {  
    47.     // do something useful with results  
    48.     for(ZBarSymbol *sym in syms) {  
    49.         self.label.text = sym.data;  
    50.         break;  
    51.     }  
    52. }  
    53.   
    54.   
    55.   
    56. - (void)viewDidUnload  
    57. {  
    58.     [super viewDidUnload];  
    59.     // Release any retained subviews of the main view.  
    60. }  
    61.   
    62. - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation  
    63. {  
    64.     return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);  
    65. }  
    66.   
    67. -(void) dealloc  
    68. {  
    69.     [self.readerView release];  
    70.     [self.label release];  
    71.     [super dealloc];  
    72. }  
    73.   
    74. @end  

    在ViewController.xib文件中 增加一个view,并且修改view的类是ZBarReaderView ,并且指向 .h文件中定义的 

    1. ZBarReaderView *readerView;  
  • 相关阅读:
    2019阿里系电子书合集来了!
    FTP主动模式和被动模式的区别
    Vsftpd运行的两种模式-xinetd运行模式和 standalone模式
    Logstash组件详解(input、codec、filter、output)
    Docker入门-笔记-1
    K8S命令-Kubectl 命令大全
    Nginx-HTTP Strict Transport Security(HSTS)
    IPV6技术笔记(剖析IPv4toIPv6)
    一个交换机到底能带几台摄像头?结合生产经验咱们来分析!
    ELK查询命令详解
  • 原文地址:https://www.cnblogs.com/angongIT/p/4122376.html
Copyright © 2011-2022 走看看