<!-- 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; } }