我已经为viewcontroller添加了一个视图,并在Interface builder中为我的视图添加了一个记录按钮。我以编程方式初始化AVCaptureVideoPreview
图层并将其添加到我的view.layer
。一旦我跑,我看到相机在我的屏幕上工作,但没有按钮。我必须使用[myView addSubview:self.record]
添加按钮,然后我会看到它。我检查了我的界面构建器,按钮是不透明的,但它仍然不会显示,直到我在代码中添加它。
有什么想法?
非常感谢您的帮助。
答案 0 :(得分:4)
那是因为您可能在视图控制器的viewDidLoad中添加了AVCaptureVideoPreviewLayer,其中IB的所有视图都已加载,因此它覆盖了UIButton - 您将此图层添加到顶部当前图层(使用故事板/界面构建器中的视图)。解决方案是为AVCaptureVideoPreviewLayer创建一个容器,并将其添加为容器的子层。您的按钮和容器视图必须是视图层次结构中的兄弟。此外,按钮必须放在容器的顶部。
AVCaptureVideoPreviewLayer *captureVideoPreviewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:session];
[self.containerView.layer addSublayer:captureVideoPreviewLayer];
这是故事板中的视图层次结构:
答案 1 :(得分:0)
使用layer.insertSublayer(...,上面:...)将您的图层插入视频图层上方。
以下是有关Swift如何在视频流link顶部插入图片的详细说明