二维码使用之二维码扫描

1.下载ZBar

2.先准备一个扫描的页面,继承于   ZBarReaderViewController

@interface QRCodeVC : ZBarReaderViewController    //扫一扫页面

3.在.m 的页面设置各种东西

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}


- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    
    for (UIView *temp in [self.view subviews]) {
        
        for (UIButton *button in [temp subviews]) {
            
            if ([button isKindOfClass:[UIButton class]]) {
                
                [button removeFromSuperview];
                
            }
            
        }
        
        for (UIToolbar *toolbar in [temp subviews]) {
            
            if ([toolbar isKindOfClass:[UIToolbar class]]) {
                
                [toolbar setHidden:YES];
                
                [toolbar removeFromSuperview];
                
            }
            
        }
        
    }
    self.view.frame = [[UIScreen mainScreen] bounds];
    if (IOS_7_AFTER) {
        self.automaticallyAdjustsScrollViewInsets = NO;
        
        
    }
    
//    //创建一个二维码框
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, WIDTH_OF_SCREEN, HEIGHT_OF_SCREEN)];
//    imageView.image = [[UIImage imageNamed:@"more_qr"] stretchableImageWithLeftCapWidth:10 topCapHeight:10];
    
    imageView.image = [UIImage imageNamed:@"more_qr"];
    imageView.contentMode = UIViewContentModeScaleAspectFill;
    [self.view addSubview:imageView];
    
    
    
    
    [self.view addSubview:self.naviHeadView];
    
    
//    AVCaptureDevice *currentDevice;

   
   
//    [currentDevice setFlashMode:(AVCaptureFlashMode);
//  
//     currentDevice setFlashMode:AVCaptureFlashModeOff;
    
    
    
}

4.然后 在开始在一个VC里面设置跳进扫一扫页面

ps:导入 头文件和ZBar代理

在VC跳转扫一扫的地方设置

QRCodeVC *vc = [QRCodeVC new];
    vc.readerDelegate = self;
    //非全屏
    vc.wantsFullScreenLayout = NO;
    //隐藏底部控制按钮
    vc.showsZBarControls = NO;
    
    //关闭闪光灯(不设置的话  在暗的地方会自动开启)
    vc.readerView.torchMode = 0;
    //设置自己定义的界面
    //            [self setOverlayPickerView:reader];
    ZBarImageScanner *scanner = vc.scanner;
    [scanner setSymbology: ZBAR_I25
                   config: ZBAR_CFG_ENABLE
                       to: 0];
    [self.navigationController pushViewController:vc animated:YES];


5.然后就在VC里面 设置扫一扫的代理方法

#pragma mark - 二维码 Delegate
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    
    
    id<NSFastEnumeration> results = [info objectForKey: ZBarReaderControllerResults];
    ZBarSymbol *symbol = nil;
    for(symbol in results)
        break;
    
    
    
    NSString *qrStr = symbol.data;
    
    
    NSRange range = [qrStr rangeOfString:@"?z="];
    if (range.location != NSNotFound  && range.location == 19) {
        
        NSString * str = [qrStr substringFromIndex:22];
        
        UserHomePage * homeVC = [[UserHomePage alloc]initWithUserId:[str intValue]];

        [self.navigationController pushViewController:homeVC animated:YES];
        
      
    }
    else
    {
        [[UIApplication sharedApplication]openURL:[NSURL  URLWithString:symbol.data]];
        
        
        NSLog(@"self.scanInfo = %@",symbol.data );
    }

}

其中   symbol. data   就是扫描到的 二维码连接





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值