Ios 在标签后面设置背景摄影机

Ios 在标签后面设置背景摄影机,ios,objective-c,xcode,avcapturesession,viewdidload,Ios,Objective C,Xcode,Avcapturesession,Viewdidload,我已经尝试了很长时间,但无法得到它的工作,但基本上我想在我的标签和按钮后面的背景显示实时摄像机饲料。下面是我正在使用的代码,以使相机出现 - (void)viewDidLoad { [super viewDidLoad]; AVCaptureSession *session = [[AVCaptureSession alloc] init]; session.sessionPreset = AVCaptureSessionPresetHigh; AVCa

我已经尝试了很长时间,但无法得到它的工作,但基本上我想在我的标签和按钮后面的背景显示实时摄像机饲料。下面是我正在使用的代码,以使相机出现

   - (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];

}

我不知道如何将其放置在视图上的标签后面。任何帮助都将不胜感激

您只需使用
sendSubviewToBack

有关更多详细信息,请查看

发送子视图备份: 移动指定的子视图,使其显示在同级视图后面


您只需使用
sendSubviewToBack

有关更多详细信息,请查看

发送子视图备份: 移动指定的子视图,使其显示在同级视图后面


[self.view.layer sendSubviewToBack:newCaptureVideoPreviewLayer]尝试在后台设置视图
[self.view.layer sendSubviewToBack:newCaptureVideoPreviewLayer]尝试在Background中设置视图添加此代码时,会出现一个错误,错误是“没有可见的@interface for'CALayer'声明选择器'sendSublayerToBack:'”我只是在加载的视图中实现了AVCapture会话,所以我没有在其他任何地方声明它。我没有看到“UIView”的@interface声明选择器“addSublayer:”和不兼容的指针类型将“AVCaptureVideoPreviewLayer*”发送到类型为“UIView*\u Nonnull”的参数。我还尝试在.h中连接视图文件并将其标记为cameraview,但当我运行应用程序时,它崩溃了,这是一种痛苦!我非常感谢你的帮助well@spel
[self.view addSublayer:newCaptureVideoPreviewLayer.view]检查我忘记添加的更新ans:newCaptureVideoPreviewLayer.view现在检查我的最新ans。添加的视图在类型为“AVCaptureVideoPreviewLayer”的对象上未找到“属性”view对于self.view's和's您做错了什么事吗?我可以看看您的完整源代码吗?当我添加此代码时,我得到一个错误,上面写着“没有可见的@interface for'CALayer'声明选择器'sendSublayerToBack:'”我只是在加载的视图中实现了AVCapture会话,所以我没有在其他任何地方声明它。我没有看到“UIView”的@interface声明选择器“addSublayer:”和不兼容的指针类型将“AVCaptureVideoPreviewLayer*”发送到类型为“UIView*\u Nonnull”的参数。我还尝试在.h中连接视图文件并将其标记为cameraview,但当我运行应用程序时,它崩溃了,这是一种痛苦!我非常感谢你的帮助well@spel
[self.view addSublayer:newCaptureVideoPreviewLayer.view]检查我忘记添加的更新的ans:newCaptureVideoPreviewLayer.view现在检查我的最新ans。添加的视图在类型为“AVCaptureVideoPreviewLayer”的对象上获得“属性”view“找不到”。view“您做错了什么,我可以查看完整的源代码吗?
AVCaptureVideoPreviewLayer *newCaptureVideoPreviewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:session];
newCaptureVideoPreviewLayer.frame = self.view.bounds;

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