Ios 当我将AVCaptureVideoPreviewLayer添加到UIView时,UIButton消失

Ios 当我将AVCaptureVideoPreviewLayer添加到UIView时,UIButton消失,ios,uiview,uibutton,Ios,Uiview,Uibutton,我已将视图添加到我的viewcontroller中,并在Interface builder中将记录按钮添加到我的视图中。通过编程,我初始化AVCaptureVideoPreview层并将其添加到我的view.layer。一旦我跑了,我看到摄像机在我的屏幕上工作,但没有按钮。我必须使用[myView addSubview:self.record]添加按钮,然后才能看到它。我检查了界面生成器,按钮是不透明的,但在代码中添加它之前,它仍然不会显示 有什么想法吗 非常感谢您的帮助。这是因为您正在视图控制

我已将视图添加到我的viewcontroller中,并在Interface builder中将记录按钮添加到我的视图中。通过编程,我初始化
AVCaptureVideoPreview
层并将其添加到我的
view.layer
。一旦我跑了,我看到摄像机在我的屏幕上工作,但没有按钮。我必须使用
[myView addSubview:self.record]
添加按钮,然后才能看到它。我检查了界面生成器,按钮是不透明的,但在代码中添加它之前,它仍然不会显示

有什么想法吗


非常感谢您的帮助。

这是因为您正在视图控制器的viewDidLoad中添加AVCaptureVideoPreviewLayer,其中IB中的所有视图都已加载,因此它涵盖了UIButton-您正在当前层的顶部添加此层(使用故事板/界面生成器中的视图)。解决方案是为AVCaptureVideoPreviewLayer创建一个容器,并将其添加为容器的子层。您的按钮和容器视图必须是视图层次结构中的同级。此外,按钮必须放在容器顶部

AVCaptureVideoPreviewLayer *captureVideoPreviewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:session];
[self.containerView.layer addSublayer:captureVideoPreviewLayer];
这是序列图像板中的视图层次结构:

使用layer.insertSublayer(…,上面:…)将层插入视频层上方

这里有一些关于Swift如何在视频流顶部插入图像的更详细说明