0

私はApple AVCamのコード例を扱っています。プレビューレイヤーをデバイスで回転させるために、次を実装しました。すべてが正常に機能していますが、インターフェイスの下部にツールバーがあるため、最初はプレビュー レイヤー ビューのサイズが設定されています。デバイスを回転させると、ビューがフルスクリーンになり、ツールバーが覆われます。

-(BOOL)shouldAutorotate {
    return YES;
}

- (NSUInteger)supportedInterfaceOrientations {
    return /*UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskPortraitUpsideDown |*/
    UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight;
}

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {

    switch (toInterfaceOrientation) {
        /*case UIDeviceOrientationPortrait:
            [videoPreviewView.layer setAffineTransform:CGAffineTransformMakeRotation(0)];
            break;

        case UIDeviceOrientationPortraitUpsideDown:
            [videoPreviewView.layer setAffineTransform:CGAffineTransformMakeRotation(M_PI)];
            break;*/

        case UIDeviceOrientationLandscapeLeft:
            [videoPreviewView.layer setAffineTransform:CGAffineTransformMakeRotation(/*-M_PI/2*/0)];
            break;

        case UIDeviceOrientationLandscapeRight:
            [videoPreviewView.layer setAffineTransform:CGAffineTransformMakeRotation(/*M_PI/2*/M_PI)];
            break;

        default:
            break;
    }
    videoPreviewView.layer.frame = self.view.bounds;

    CGAffineTransform transform = [videoPreviewView.layer affineTransform];

    NSLog(@"videoPreviewView:transform: [%f %f,%f,%f,%f,%f",transform.a, transform.b,
          transform.c, transform.d, transform.tx, transform.ty);
    NSLog(@"previewView.layer.frame width: %f height: %f",videoPreviewView.layer.frame.size.width,
          videoPreviewView.layer.frame.size.height);
}


-(void) viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:YES];

    //Get Preview Layer connection
    AVCaptureConnection *previewLayerConnection=self.captureVideoPreviewLayer.connection;

    if ([previewLayerConnection isVideoOrientationSupported]){
        [previewLayerConnection setVideoOrientation:[[UIApplication sharedApplication] statusBarOrientation]];
        self.captureVideoPreviewLayer.frame=self.view.bounds;
    }
}

プレビュー レイヤー ビューを回転させてインターフェイスをインラインに保つにはどうすればよいですか?

4

0 に答える 0