Изменение размера подслоя до границ UIView в Swift - PullRequest
0 голосов
/ 08 марта 2019

Я пытаюсь поместить AVCaptureVideoPreviewLayer в качестве подслоя в элементе UIView. Я попытался установить его рамку на границы UIView, используя:

cameraPreviewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
cameraPreviewLayer?.videoGravity = AVLayerVideoGravity.resizeAspectFill
cameraPreviewLayer?.connection?.videoOrientation = AVCaptureVideoOrientation.portrait
cameraPreviewLayer?.frame = PreviewController.bounds
PreviewController.layer.addSublayer(cameraPreviewLayer!)

Когда я пытался напечатать значения рамки и границ, это дает мне это:

print(PreviewController.bounds)
print(cameraPreviewLayer!.frame)

(0.0, 0.0, 375.0, 500.0)
(0.0, 0.0, 375.0, 500.0)

В реальном приложении это приводит к тому, что подслой не заполняет весь элемент UIView:

Error

Кто-нибудь знает, как решить эту проблему?

1 Ответ

0 голосов
/ 08 марта 2019

Вам нужно

override func viewDidLayoutSubviews() {
  super.viewDidLayoutSubviews()
  cameraPreviewLayer?.frame = PreviewController.bounds
}
...