iOS开发笔记--自定义Zbar扫描界面

来源:互联网 发布:java 取绝对值的方法 编辑:程序博客网 时间:2024/05/22 02:31

作者:朱克锋

邮箱:zhukefeng@iboxpay.com

转载请注明出处:http://blog.csdn.net/linux_zkf

这个简单的实例实在ZBarReaderViewControllerview层上再加一层用于定义自己的界面


- (void)QRscan{    ZBarReaderViewController *reader = [ZBarReaderViewController new];    reader.readerDelegate = self;//非全屏    reader.wantsFullScreenLayout = NO;    //隐藏底部控制按钮    reader.showsZBarControls = NO;    //设置自己定义的界面    [self setOverlayPickerView:reader];    ZBarImageScanner *scanner = reader.scanner;   [scanner setSymbology: ZBAR_I25                   config: ZBAR_CFG_ENABLE                       to: 0];    [self presentModalViewController: reader                            animated: YES];    [reader release];}- (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];            }        }    }    //画中间的基准线    UIView* line = [[UIView alloc] initWithFrame:CGRectMake(40, 220, 240, 1)];    line.backgroundColor = [UIColor redColor];    [reader.view addSubview:line];    [line release];   //最上部view    UIView* upView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 80)];    upView.alpha = 0.3;    upView.backgroundColor = [UIColor blackColor];    [reader.view addSubview:upView];    //用于说明的label    UILabel * labIntroudction= [[UILabel alloc] init];    labIntroudction.backgroundColor = [UIColor clearColor];    labIntroudction.frame=CGRectMake(15, 20, 290, 50);    labIntroudction.numberOfLines=2;       labIntroudction.textColor=[UIColor whiteColor];    labIntroudction.text=@"将二维码图像置于矩形方框内,离手机摄像头10CM左右,系统会自动识别。";    [upView addSubview:labIntroudction];    [labIntroudction release];    [upView release];    //左侧的view    UIView *leftView = [[UIView alloc] initWithFrame:CGRectMake(0, 80, 20, 280)];    leftView.alpha = 0.3;    leftView.backgroundColor = [UIColor blackColor];    [reader.view addSubview:leftView];    [leftView release];//右侧的view      UIView *rightView = [[UIView alloc] initWithFrame:CGRectMake(300, 80, 20, 280)];    rightView.alpha = 0.3;    rightView.backgroundColor = [UIColor blackColor];    [reader.view addSubview:rightView];    [rightView release];       //底部view    UIView * downView = [[UIView alloc] initWithFrame:CGRectMake(0, 360, 320, 120)];    downView.alpha = 0.3;    downView.backgroundColor = [UIColor blackColor];    [reader.view addSubview:downView];    [downView release];               //用于取消操作的button    UIButton *cancelButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];        cancelButton.alpha = 0.4;    [cancelButton setFrame:CGRectMake(20, 390, 280, 40)];     [cancelButton setTitle:@"取消" forState:UIControlStateNormal];    [cancelButton.titleLabel setFont:[UIFont boldSystemFontOfSize:20]];    [cancelButton addTarget:self action:@selector(dismissOverlayView:)forControlEvents:UIControlEventTouchUpInside];    [reader.view addSubview:cancelButton];}//取消button方法- (void)dismissOverlayView:(id)sender{     [self dismissModalViewControllerAnimated: YES];}


原创粉丝点击