在UILabels后面设置背景照相机

时间:2016-01-22 05:33:31

标签: ios objective-c xcode avcapturesession viewdidload

我已经尝试了很长时间并且无法解决这个问题,但基本上我想在我的标签和按钮后面的背景中显示实时摄像头。这是我正在使用的代码,以使相机出现

   - (void)viewDidLoad {
    [super viewDidLoad];

    AVCaptureSession *session = [[AVCaptureSession alloc] init];
    session.sessionPreset = AVCaptureSessionPresetHigh;

    AVCaptureDevice *device = [AVCaptureDevice  defaultDeviceWithMediaType:AVMediaTypeVideo];

    NSError *error = nil;
    AVCaptureDeviceInput *input = [AVCaptureDeviceInput deviceInputWithDevice:device error:&error];
    [session addInput:input];

    AVCaptureVideoPreviewLayer *newCaptureVideoPreviewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:session];
    newCaptureVideoPreviewLayer.frame = self.view.bounds;

    [self.view addSublayer:newCaptureVideoPreviewLayer.view];
    [self.view sendSubviewToBack:newCaptureVideoPreviewLayer.view];

    [session startRunning];

}

我不知道如何将它放在视图上的标签后面加载。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:2)

您只需使用sendSubviewToBack

在后台添加视图即可

有关详细信息,请查看Apple AVCam Example

  

sendSubviewToBack:   移动指定的子视图,使其显示在其兄弟节点后面。

AVCaptureVideoPreviewLayer *newCaptureVideoPreviewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:session];
newCaptureVideoPreviewLayer.frame = self.view.bounds;

[self.view.layer addSublayer:newCaptureVideoPreviewLayer];
[session startRunning];

OR

[[self.view superView] insertSubview:newCaptureVideoPreviewLayer belowSubview:self.view];