我在PBJVision上遇到了麻烦。
我将它集成到Swift项目中,当我试图设置预览层的框架时,它会导致一个不一致的框架:

我有这样的代码:
var _previewLayer: AVCaptureVideoPreviewLayer = PBJVision.sharedInstance().previewLayer
@IBOutlet weak var previewView: UIView! // this is the white view in the back
let bounds = self.previewView.layer.bounds
_previewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill
_previewLayer.bounds = bounds
_previewLayer.position = CGPointMake(CGRectGetMidX(bounds), CGRectGetMidY(bounds))
previewView.layer.addSublayer(_previewLayer)发布于 2016-02-03 04:24:21
当_previewLayer显示子视图时,您试过调整previewView的帧大小吗?
子类UIView用于previewView,为AVCaptureVideoPreviewLayer设置一个属性,并将其框架设置为与视图的界限相匹配:
class PreviewView: UIView {
let previewLayer: AVCaptureVideoPreviewLayer?
override func layoutSubviews() {
self.previewLayer?.frame = self.bounds;
}
}发布于 2018-05-31 16:15:31
我也有过同样的问题。
我尝试了@rkyr推荐(在viewDidLayoutSubviews方法中设置框架),但没有成功。我还想在不添加子类的情况下修复它。
我能够通过两个更改来修复它:-确保previewLayer被定义为AVCaptureVideoPreviewLayer (CALayer的子类)而不是CALayer,这就是我的情况
var previewLayer: AVCaptureVideoPreviewLayer? // :CALayer我觉得这有帮助..。E
https://stackoverflow.com/questions/35108928
复制相似问题