关于ZBarReaderView 自定义UI界面

<!-- lang: cpp -->
在此输入代码

-(void)scanClick:(id)sender { // [appDelegate runUI:VIEW_SCAN_VIEW]; NSLog(@" 跳转扫描扫描页面 ");

if(!self.zBarReaderView)
{
    self.zBarReaderView = [ZBarReaderViewController new];
    self.zBarReaderView.readerDelegate = self;
    self.zBarReaderView.supportedOrientationsMask = ZBarOrientationMaskAll;
    self.zBarReaderView.showsZBarControls = NO;
    self.zBarReaderView.readerView.torchMode = 0;
    [self setOverlayPickerView:self.zBarReaderView];

    ZBarImageScanner *scanner = self.zBarReaderView.scanner;
    [scanner setSymbology: ZBAR_I25
                   config: ZBAR_CFG_ENABLE
                       to: 0];
    
}

[self presentViewController:self.zBarReaderView
                   animated:YES
                 completion:^(void)
                {
                     // Code
                     NSLog(@"弹出。。。。");
                 }];

}

/**

  • 扫条形码结果 **/
  • (void) imagePickerController: (UIImagePickerController*) reader didFinishPickingMediaWithInfo: (NSDictionary*) info { id<NSFastEnumeration> results = [info objectForKey: ZBarReaderControllerResults]; ZBarSymbol *symbol = nil; for(symbol in results) break;

    //判断是否包含 头'http:' NSString regex = @"http+:[^\s]"; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex];

    //判断是否包含 头'ssid:' NSString ssid = @"ssid+:[^\s]";; NSPredicate *ssidPre = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",ssid]; NSString *dataStr = symbol.data ; NSLog(@"ssidPre %@", ssidPre); NSLog(@"predicate %@", predicate); NSLog(@"dataStr %@", dataStr);

    [self performSelector:@selector(disposeViewControl) withObject:FALSE afterDelay:5.0]; }

/** *关闭页面 */ -(void)disposeViewControl { [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(disposeViewControl) object:nil]; [self dismissViewControllerAnimated:YES completion:^(void) { NSLog(@"消失~~ "); }]; }

  • (void)setOverlayPickerView:(ZBarReaderViewController *)reader {

    //清除所有内容 for (UIView *temp in [reader.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];
          }
      }  
    

    } //TITLE_HEIGHT : 64 头部高度 tmpHeight = appDelegate.mainRootView.getRootHeight - 3TITLE_HEIGHT; tmpWidth = appDelegate.mainRootView.getRootWidth - 30; //最上部view UIView upView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, appDelegate.mainRootView.getRootWidth, TITLE_HEIGHT)]; upView.alpha = 0.4; upView.backgroundColor = [UIColor blackColor]; [reader.view addSubview:upView];

    //左侧的view UIView *leftView = [[UIView alloc] initWithFrame:CGRectMake(0, TITLE_HEIGHT, 15, tmpHeight)]; leftView.alpha = 0.4; leftView.backgroundColor = [UIColor blackColor]; [reader.view addSubview:leftView];

    //右侧的view UIView *rightView = [[UIView alloc] initWithFrame:CGRectMake(appDelegate.mainRootView.getRootWidth - 15, TITLE_HEIGHT, 15, tmpHeight)]; rightView.alpha = 0.4; rightView.backgroundColor = [UIColor blackColor]; [reader.view addSubview:rightView];

    //底部view UIView * downView = [[UIView alloc] initWithFrame:CGRectMake(0, tmpHeight + TITLE_HEIGHT, appDelegate.mainRootView.getRootWidth, 2*TITLE_HEIGHT)]; downView.alpha = 0.4; downView.backgroundColor = [UIColor blackColor]; [reader.view addSubview:downView];

    //最上层的操作 左边 UIButton * button = [UIButton buttonWithType:UIButtonTypeCustom]; button.frame = CGRectMake(15, 24, 30, 30); [button setBackgroundImage:[UIImage imageNamed:@"ocrBack"] forState:UIControlStateNormal]; [button addTarget:self action:@selector(leftClick:) forControlEvents:UIControlEventTouchUpInside]; [reader.view addSubview:button];

    //右边 UIButton * buttonRight = [UIButton buttonWithType:UIButtonTypeCustom]; buttonRight.frame= CGRectMake(appDelegate.mainRootView.getRootWidth - 45, 24, 30, 30); [buttonRight setBackgroundImage:[UIImage imageNamed:@"ocr_flash_off"] forState:UIControlStateNormal]; [buttonRight addTarget:self action:@selector(rightClick:) forControlEvents:UIControlEventTouchUpInside]; [reader.view addSubview:buttonRight];

    //用于说明的label UILabel * labIntroudction= [[UILabel alloc] init]; labIntroudction.backgroundColor = [UIColor clearColor]; labIntroudction.frame=CGRectMake(0, 20, downView.frame.size.width, 50); labIntroudction.numberOfLines=2; labIntroudction.textColor=[UIColor whiteColor]; labIntroudction.textAlignment = NSTextAlignmentCenter; labIntroudction.text=@"将二维码/条形码放入扫描框内\n自动识别不安全连接,请放心扫描"; [downView addSubview:labIntroudction];

    //4个角 //左上 UIImageView *leftUp=[[UIImageView alloc] initWithFrame:CGRectMake(13, TITLE_HEIGHT-2, 19, 19)]; [leftUp setImage:[UIImage imageNamed:@"scan_1"]]; [reader.view addSubview:leftUp];

    //右上 UIImageView *rightUp=[[UIImageView alloc] initWithFrame:CGRectMake(appDelegate.mainRootView.getRootWidth-13-19, TITLE_HEIGHT-2, 19, 19)]; [rightUp setImage:[UIImage imageNamed:@"scan_2"]]; [reader.view addSubview:rightUp]; //左下 UIImageView *leftDown=[[UIImageView alloc] initWithFrame:CGRectMake(13, TITLE_HEIGHT+tmpHeight-15, 19, 19)]; [leftDown setImage:[UIImage imageNamed:@"scan_3"]]; [reader.view addSubview:leftDown]; //右下 UIImageView *rightDown=[[UIImageView alloc] initWithFrame:CGRectMake(appDelegate.mainRootView.getRootWidth-13-19, TITLE_HEIGHT+tmpHeight-15, 19, 19)]; [rightDown setImage:[UIImage imageNamed:@"scan_4"]]; [reader.view addSubview:rightDown];

    //滑动 num =0; UIImage *image =[UIImage imageNamed:@"scan_net"]; NSLog(@"image %f", image.size.height); NSLog(@"image %f", image.size.width); startY= TITLE_HEIGHT; scanNet = [[UIImageView alloc] initWithFrame:CGRectMake(15, startY, tmpWidth, tmpHeight)]; scanNet.image = image; [reader.view addSubview:scanNet]; // scanNet.layer.borderColor = [UIColor redColor].CGColor; // scanNet.layer.borderWidth = 1.0f; timer = [NSTimer scheduledTimerWithTimeInterval:.02 target:self selector:@selector(animation1) userInfo:nil repeats:YES];

} -(void)animation1 { num ++; scanNet.frame = CGRectMake(scanNet.frame.origin.x, startY, scanNet.frame.size.width,2num); if (2num == tmpHeight) { num = 0; } }

-(void) leftClick:(id)sender { [self disposeViewControl]; }

-(void) rightClick:(id)sender { UIButton *btn = (UIButton *)sender; if (btn.selected) { btn.selected = NO; self.zBarReaderView.readerView.torchMode = 0; } else { btn.selected = YES; self.zBarReaderView.readerView.torchMode = 1; } }

转载于:https://my.oschina.net/coper/blog/298438

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值