我正在研究ZBarReader,目前我所拥有的是
ZBarReaderViewController *controller = [[ZBarReaderViewController alloc] init];
controller.navigationController.navigationBarHidden = NO;
// Add Edit button to the right and handle click event UIBarButtonItem *manualButton = [[UIBarButtonItem alloc] initWithTitle:@"Manual" style:UIBarButtonItemStyleBordered target:self action:@selector(EditMode:)];
[controller.navigationItem setRightBarButtonItem:manualButton];
controller.readerDelegate = self;
[self presentModalViewController:controller animated:YES];
我的问题是我们可以这样做吗:设置工具栏可见并在其上添加ZBarReaderViewController的按钮。
答案 0 :(得分:8)
是的,您已先将一些属性设置为ZBarReaderViewController
self.zReader.showsCameraControls = NO;
self.zReader.showsZBarControls=NO;
然后您必须设置自定义cameraOverlayView
,例如,设置UIToolBar
左侧按钮以关闭选择器,设置UISwitch
来控制FlashMode:
self.zReader.cameraOverlayView=[self setOverlayPickerView];
- (UIView *)setOverlayPickerView{
UIView *v=[[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
[v setBackgroundColor:[UIColor clearColor]];
UIToolbar *myToolBar = [[UIToolbar alloc] init];
UIBarButtonItem *backButton=[[UIBarButtonItem alloc] initWithTitle:@"back" style:UIBarButtonItemStyleBordered target:self action:@selector(dismissOverlayView:)];
UISwitch *sw=[[UISwitch alloc] init];
[sw setOn:NO];
UIBarButtonItem *switchButton=[[UIBarButtonItem alloc] initWithCustomView:sw];
UIBarButtonItem *fixed=[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
[sw addTarget:self action:@selector(handleSwitchFlash:) forControlEvents:UIControlEventValueChanged];
[myToolBar setItems:[NSArray arrayWithObjects:backButton,fixed,switchButton,nil]];
[myToolBar setBarStyle:UIBarStyleDefault];
CGRect toolBarFrame;
toolBarFrame = CGRectMake(0, 436, 320, 44);
[myToolBar setFrame:toolBarFrame];
[v addSubview:myToolBar];
return v;
}
- (void)dismissOverlayView:(id)sender{
[self dismissModalViewControllerAnimated: YES];
}
答案 1 :(得分:0)
除了@Mat回答,
应该添加
[self.zReader.view setFrame:[UIScreen mainScreen].bounds];
之前
self.zReader.cameraOverlayView=[self setOverlayPickerView];
因为默认情况下,self.zReader的大小为(320,480)。
顺便说一句,如果不需要兼容iOS6.0,你可以使用[AVCaptureDevice]:https://developer.apple.com/library/mac/documentation/AVFoundation/Reference/AVCaptureDevice_Class/Reference/Reference.html