Это мой пользовательский класс:
class PreviewView: UIView {
var videoPreviewLayer: AVCaptureVideoPreviewLayer {
guard let layer = layer as? AVCaptureVideoPreviewLayer else {
fatalError("Expected `AVCaptureVideoPreviewLayer` type for layer. Check PreviewView.layerClass implementation.")
}
return layer
}
var session: AVCaptureSession? {
get {
return videoPreviewLayer.session
}
set {
videoPreviewLayer.session = newValue
}
}
override class var layerClass: AnyClass {
return AVCaptureVideoPreviewLayer.self
}
}
У меня есть UIView на моей раскадровке с 0, 0, 0, 0. Однако AVCaptureVideoPreviewLayer все еще изменяет размер до (я не знаю, где числа исходя из) меньшего числа. Я хочу, чтобы AVCaptureVideoPreviewLayer изменял размер в полноэкранный режим. Как я могу достичь этого в моем специальном классе?
Редактировать Решение:
override func layoutSubviews() {
self.videoPreviewLayer.bounds = self.bounds
self.videoPreviewLayer.videoGravity = AVLayerVideoGravity.resizeAspectFill
}