2014-03-01 2 views
1

QR 코드 스캔 기능에 ZBarSDK를 사용하고 있습니다. PORTRAIT 모드에서만이 기능을 사용하고 싶습니다. 설명서마다 아래 코드 줄을 사용하여 설정했습니다.ZBarReaderViewController 독자 뷰는 _reader.supportedOrientationsMask로 제한 한 후에도 iOS6 및 iOS7의 방향을 변경합니다.

_reader.supportedOrientationsMask = ZBarOrientationMask (UIInterfaceOrientationPortrait);

예상대로 iOS 5에서 잘 작동하지만 동일한 코드로이보기는 iOS 6의 방향을 바꿉니다. & 7. supportedOriationsMask는 < iOS 6에서만 작동합니까? 이 ZBar 리더 카메라보기가 세로 모드에서만 작동하도록하는 다른 방법이 있습니까? 코드와

여기에 자세한 내용은 사전

감사 :

if(_reader) // first check `_reader` is created or not? 
{ 
    [_reader.readerView stop]; // then stop continue scanning stream of "self.ZBarReaderVC" 
    for(UIView *subViews in _reader.view.subviews) // remove all subviews 
     [subViews removeFromSuperview]; 
    [_reader.view removeFromSuperview]; 
    _reader.view = nil; 
} 

_reader = [ZBarReaderViewController new]; 
_reader.readerDelegate = self; 

_reader.supportedOrientationsMask = ZBarOrientationMask(UIInterfaceOrientationPortrait); 

ZBarImageScanner *scanner = _reader.scanner; 

// EXAMPLE: disable rarely used I2/5 to improve performance 
[scanner setSymbology: ZBAR_I25 
       config: ZBAR_CFG_ENABLE 
        to: 0]; 

[_reader.view setFrame:CGRectMake(0, _topbar.frame.size.height, self.view.bounds.size.width, self.view.bounds.size.height-_topbar.frame.size.height)]; 

_reader.cameraOverlayView = [self CommomOverlay]; 

_reader.showsZBarControls=NO; 

// present and release the controller 
[self presentModalViewController: _reader 
         animated: NO]; 

내가 필요한 경우 자세한 내용에 알려주십시오.

+0

안녕하세요, 세로 모드로 작동합니까? 그리고 가로 모드의 문제점은 무엇입니까? – chandan

+0

가로 모드로 화면을 회전시키지 않고 세로로만 유지하려고합니다. iOS 5의 경우 장치 방향을 변경하면 세로 만 유지됩니다. 카메라 화면 (보기 컨트롤러에 표시된 _reader)이 문제의 풍경에서 방향을 바꾸기 때문에 발생하지 않아야하는 것은 iOS6 및 iOS7뿐입니다. – Niraj

답변

3

마지막으로 해결책을 찾았습니다. 문제는 다음과 같았습니다 : ZbarViewController * reader가 현재 뷰 컨트롤러에서 제공되었고 초상화 지원 속성이 어떻게 든 작동하지 않았습니다. 나는이 문제를 내가 TBZbarViewController에게 ZbarViewController 클래스를 상속 한 새로운 클래스를 생성하고 아래의 방법을 배치입니다 해결하기 위해 무슨 짓을

_reader.supportedOrientationsMask = ZBarOrientationMask(UIInterfaceOrientationPortrait); 

.

-(BOOL)shouldAutorotate{ 
return NO; 

은} 그럼이 문제를 해결 내 컨트롤러에서 제시하는 TBZbarViewController * 리더를 사용하고 필요에 따라 만 세로 모드에서 작업입니다.

감사합니다.

0

I는 다음과 같이했고, 모든 아이폰 OS 버전에 대해 노력하고 있습니다 :

1 단계 : 장치 방향

enter image description here

2 단계 설정 : 당신이 코드를 추가 구현 (.m) 파일.

#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_6_0 

- (BOOL) shouldAutorotate 
{ 
    return YES; 
} 

- (NSUInteger)supportedInterfaceOrientations 
{ 
    return UIInterfaceOrientationMaskPortrait; 
} 
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation { 

    return UIInterfaceOrientationMaskPortrait; 

} 

#endif 

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    return (interfaceOrientation == UIInterfaceOrientationPortrait) || (interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown); 
} 
+0

고마워요 Ajay, 하지만 여기에 문제가 내 애플 리케이션 유니버설 애플 리케이션이며 나는 위에서 언급 한 것과 같은 일을했습니다. 따라서 모든 뷰 컨트롤러는 세로보기 모드에서 잘 작동하지만 내 뷰 컨트롤러에서 ZBarReaderViewController * 판독기를 열면 카메라 판독기가 열리고 세로 방향으로만 차단하려는 방향이 변경됩니다. ZBarReaderViewController.m 파일을 변경하여 변경할 수있는 권한이 없습니다. 그러나 이상한 선은 작동하지 않습니다. _reader.supportedOrientationsMask = ZBarOrientationMask (UIInterfaceOrientationPortrait); 이것에 대한 통찰력이 있으십니까? – Niraj