【问题标题】:UIButton disappear when I add AVCaptureVideoPreviewLayer to my UIView当我将 AVCaptureVideoPreviewLayer 添加到我的 UIView 时,UIButton 消失
【发布时间】:2014-03-28 00:34:37
【问题描述】:

我已经向我的视图控制器添加了一个视图,并在界面生成器中向我的视图添加了一个记录按钮。我以编程方式初始化AVCaptureVideoPreview 层并将其添加到我的view.layer。跑步后,我看到相机在我的屏幕上工作,但没有按钮。我必须使用[myView addSubview:self.record] 添加按钮,然后我看到了。我检查了我的界面生成器,按钮是不透明的,但在我将它添加到代码中之前它仍然不会显示。

有什么想法吗??

非常感谢您的帮助。

【问题讨论】:

    标签: ios uiview uibutton


    【解决方案1】:

    那是因为您可能在视图控制器的 viewDidLoad 中添加了 AVCaptureVideoPreviewLayer,其中 IB 中的所有视图都已加载,因此它覆盖了 UIButton - 您正在将这一层添加到当前层之上(您的视图来自故事板/界面构建器)。解决方案是为 AVCaptureVideoPreviewLayer 创建一个容器并将其添加为容器的子层。您的按钮和容器视图必须是视图层次结构中的兄弟。此外,按钮必须放在容器的顶部。

    AVCaptureVideoPreviewLayer *captureVideoPreviewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:session];
    [self.containerView.layer addSublayer:captureVideoPreviewLayer];
    

    这是来自故事板的视图层次结构:

    【讨论】:

      【解决方案2】:

      使用 layer.insertSublayer(..., above: ...) 将您的图层插入视频图层上方。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多