自定義二維碼 相機界面

這個簡單的實例實在ZBarReaderViewControllerview層上再加一層用於定義自己的界面

- (void)QRscan

{

    ZBarReaderViewController *reader = [ZBarReaderViewController new];

    reader.readerDelegate = self;

//非全屏

    reader.wantsFullScreenLayout = NO;

    //隱藏底部控制按鈕

    reader.showsZBarControls = NO;    

//設置自己定義的界面

    [self setOverlayPickerView:reader];

    ZBarImageScanner *scanner = reader.scanner;

   [scanner setSymbologyZBAR_I25

                   configZBAR_CFG_ENABLE

                       to0];

    [self presentModalViewController: reader

                            animatedYES];

    [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 allocinitWithFrame:CGRectMake(402202401)];

    line.backgroundColor = [UIColor redColor];

    [reader.view addSubview:line];

    [line release];   

//最上部view

    UIView* upView = [[UIView allocinitWithFrame:CGRectMake(0032080)];

    upView.alpha = 0.3;

    upView.backgroundColor = [UIColor blackColor];

    [reader.view addSubview:upView];

    //用於說明的label

    UILabel * labIntroudction= [[UILabel allocinit];

    labIntroudction.backgroundColor = [UIColor clearColor];

    labIntroudction.frame=CGRectMake(152029050);

    labIntroudction.numberOfLines=2;   

    labIntroudction.textColor=[UIColor whiteColor];

    labIntroudction.text=@"將二維碼圖像置於矩形方框內,離手機攝像頭10CM左右,系統會自動識別。";

    [upView addSubview:labIntroudction];

    [labIntroudction release];

    [upView release];    

//左側的view

    UIView *leftView = [[UIView allocinitWithFrame:CGRectMake(08020280)];

    leftView.alpha = 0.3;

    leftView.backgroundColor = [UIColor blackColor];

    [reader.view addSubview:leftView];

    [leftView release];

//右側的view  

    UIView *rightView = [[UIView allocinitWithFrame:CGRectMake(3008020280)];

    rightView.alpha = 0.3;

    rightView.backgroundColor = [UIColor blackColor];

    [reader.view addSubview:rightView];

    [rightView release];   

    //底部view

    UIView * downView = [[UIView allocinitWithFrame:CGRectMake(0360320120)];

    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(2039028040)]; 

    [cancelButton setTitle:@"取消" forState:UIControlStateNormal];

    [cancelButton.titleLabel setFont:[UIFont boldSystemFontOfSize:20]];

    [cancelButton addTarget:selfaction:@selector(dismissOverlayView:)forControlEvents:UIControlEventTouchUpInside];

    [reader.view addSubview:cancelButton];

}

//取消button方法

- (void)dismissOverlayView:(id)sender{ 

    [self dismissModalViewControllerAnimatedYES];

}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章