2013-06-24 13 views
2

我正在開發使用科爾多瓦一個iOS應用,而我從這個link下載科爾多瓦條碼掃描器插件。我怎樣才能讓在風景模式下BarcodeScanner插件作品?

但是,它只適用於肖像模式。

我在CDVBarcodeScanner.mm中做了一些修改。

#pragma mark CDVBarcodeScannerOrientationDelegate 

- (BOOL)shouldAutorotate 
{ 
    return YES;// NO; 
} 

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation 
{ 
    return UIInterfaceOrientationPortrait; 
} 

- (NSUInteger)supportedInterfaceOrientations 
{ 
    return UIInterfaceOrientationMaskAll; // UIInterfaceOrientationMaskPortrait; 
} 

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    if ((self.orientationDelegate != nil) && [self.orientationDelegate respondsToSelector:@selector(shouldAutorotateToInterfaceOrientation:)]) { 
     return [self.orientationDelegate shouldAutorotateToInterfaceOrientation:interfaceOrientation]; 
    } 

    return YES; 
} 

- (void) willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)orientation duration:(NSTimeInterval)duration 
{ 
// [CATransaction begin]; 
//  
// self.processor.previewLayer.orientation = orientation; 
// [self.processor.previewLayer layoutSublayers]; 
// self.processor.previewLayer.frame = self.view.bounds; 
//  
// [CATransaction commit]; 
// [super willAnimateRotationToInterfaceOrientation:orientation duration:duration]; 

    [UIView setAnimationsEnabled:NO]; 
    AVCaptureVideoPreviewLayer* previewLayer = self.processor.previewLayer; 
    previewLayer.frame = self.view.bounds; 

    if (orientation == UIInterfaceOrientationLandscapeLeft) { 
     [previewLayer setOrientation:AVCaptureVideoOrientationLandscapeLeft]; 
    } else if (orientation == UIInterfaceOrientationLandscapeRight) { 
     [previewLayer setOrientation:AVCaptureVideoOrientationLandscapeRight]; 
    } else if (orientation == UIInterfaceOrientationPortrait) { 
     [previewLayer setOrientation:AVCaptureVideoOrientationPortrait]; 
    } else if (orientation == UIInterfaceOrientationPortraitUpsideDown) { 
     [previewLayer setOrientation:AVCaptureVideoOrientationPortraitUpsideDown]; 
    } 

    previewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill; 
    [UIView setAnimationsEnabled:YES]; 
} 

我現在可以旋轉到橫向模式,但它仍然只能在縱向模式下工作。 我該如何解決它?


按照solution,我刪除如果(result.empty()& & hints.getTryHarder()& &圖像 - > isRotateSupported()){}斑馬線-所有功能於一身的.cpp

但是,它現在只適用於景觀。

回答

1

在斑馬線,所有功能於one.cpp文件,

變化

if (result.empty() && hints.getTryHarder() && image->isRotateSupported()) {} 

if (result.empty()) {} 
0

您也可以修改CDVBarcodeScanner.mm。只是LandscapeLeft/LandscapeRight替換所有***肖像 - >我喜歡LandscapeLeft。