【问题标题】:How should I properly add constraints to an AVCaptureVideoPreviewLayer?我应该如何正确地将约束添加到 AVCaptureVideoPreviewLayer?
【发布时间】:2014-06-28 05:57:37
【问题描述】:

我的视图顶部有一个导航栏。我正在添加一个 AVCaptureVideoPreviewLayer,但它的定位方式是导航栏底部和预览层顶部之间存在间隙。

    self.view.backgroundColor = UIColor.redColor()

    var navBarFrame = CGRectMake(0, 0, self.view.frame.width, 64.0)
    var navBar = UINavigationBar(frame: navBarFrame)
    var navItem = UINavigationItem()
    navItem.title = "zzzz"
    navBar.pushNavigationItem(navItem, animated: false)
    self.view.addSubview(navBar)


    // init device input
    var error: NSErrorPointer!
    var deviceInput: AVCaptureInput = AVCaptureDeviceInput.deviceInputWithDevice(captureDevice, error: error) as AVCaptureInput
    self.stillImageOutput = AVCaptureStillImageOutput()


    // init session
    self.session = AVCaptureSession()
    self.session.sessionPreset = AVCaptureSessionPresetPhoto
    self.session.addInput(deviceInput as AVCaptureInput)
    self.session.addOutput(self.stillImageOutput)


    // layer for preview
    var previewLayer: AVCaptureVideoPreviewLayer = AVCaptureVideoPreviewLayer.layerWithSession(self.session) as AVCaptureVideoPreviewLayer
    previewLayer.frame = self.view.bounds
    self.view.layer.addSublayer(previewLayer)

如何确保预览层被限制在导航栏的底部?

【问题讨论】:

    标签: ios xcode swift avcapturesession


    【解决方案1】:

    在 IB 中设计一个具有您想要的约束的视图。将预览层添加到此视图中,您还需要在视图大小更改时更新图层大小,使用视图控制器中的layoutSubviews 方法在大小更改时获取更新。

    【讨论】:

      猜你喜欢
      • 2015-10-25
      • 2020-09-02
      • 1970-01-01
      • 1970-01-01
      • 2018-05-05
      • 1970-01-01
      • 1970-01-01
      • 2015-10-24
      • 1970-01-01
      相关资源
      最近更新 更多