AVCaptureVideoPreviewLayer不填充边界

Obj*_*ter 2 objective-c avfoundation ios

我有一个AVCaptureVideoPreviewLayer,我想把它填充到我的UIView的边界.但它似乎没有正常工作.它只显示在屏幕的3/4左右.

CGRect bounds=self.previewView.layer.bounds;
self.previewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill;
self.previewLayer.bounds = bounds;
self.previewLayer.position=CGPointMake(CGRectGetMidX(bounds), CGRectGetMidY(bounds));
[self.previewView.layer addSublayer:self.previewLayer];
Run Code Online (Sandbox Code Playgroud)

图片:http://cl.ly/image/1Y441f3B2d1m

Fab*_*ato 6

在添加预览图层后,您的容器视图可能会在某个时刻调整大小,并且由于CALayer没有自动调整大小的掩码或自动布局,因此它不会更新它的帧,您需要手动执行此操作

  • 您需要做的是在-viewWillLayoutSubviews中更新它的边界和位置(如果您在UIViewController中)或者-layoutSubviews(如果您在UIView中) (7认同)