2012-04-13 2 views
2

에 대한 uibarbutton을 추가하고 내가 지금까지 지금 데하는ZBarReaderViewController 내가 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.

답변

8

예, 당신은 당신의

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

그런 다음이이 선택기를 기각 할 왼쪽 버튼으로 UIToolBar을 설정 예를 들어 사용자 정의 cameraOverlayView을 설정해야 ZBarReaderViewController 및 제어 할 수있는 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]; 
} 
+0

가 날 수 있습니다. 나는 노력했고 효과가 있었다. 우리는 프로그래밍 대신 펜으로 뷰를로드 할 수있는 방법을 알고 있습니다. – tranvutuan

+0

(xib로) 일반 UIViewController를 만들고 뷰를 'cameraOverlayView'에 전달할 수 있습니다. – Mat

+0

방금 ​​시도해 봤습니다 .. [link] (http://stackoverflow.com/questions/10156930/customions-of-the-camera-overlay)에서 저의 다른 게시물을보십시오. – tranvutuan

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

관련 문제