這個簡單的實例實在ZBarReaderViewController的view層上再加壹層用於定義自己的界面
-?(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];
}
轉載請註明出處:/linux_zkf