2

私は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 のボタンを追加します。

4

2 に答える 2

8

はい、最初にいくつかのプロパティをZBarReaderViewControllerに設定しました

 self.zReader.showsCameraControls = NO;
 self.zReader.showsZBarControls=NO;

次に、カスタムを設定する必要があります。cameraOverlayViewたとえばUIToolBar、左ボタンでピッカーをUISwitch閉じ、aで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];
}
于 2012-04-13T20:16:35.967 に答える
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

于 2014-09-04T01:06:28.743 に答える