我正在尝试像这样将 AVCaptureVideoPreviewLayer 添加到我的视图中
[captureVideoPreviewLayer setFrame:CGRectMake(10.0f,10.0f,300.0f,300.0f)];
[self.view.layer addSublayer:captureVideoPreviewLayer];
但它似乎没有遵循 CGRectMake,层的高度是 300 但不是宽度,我不知道为什么!
我正在尝试像这样将 AVCaptureVideoPreviewLayer 添加到我的视图中
[captureVideoPreviewLayer setFrame:CGRectMake(10.0f,10.0f,300.0f,300.0f)];
[self.view.layer addSublayer:captureVideoPreviewLayer];
但它似乎没有遵循 CGRectMake,层的高度是 300 但不是宽度,我不知道为什么!
解决方案很简单,我只需要添加即可captureVideoPreviewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill;
解决问题。
似乎您的视图的图层尺寸错误。为此,将视图的大小至少更新到所需的矩形:
[self.view setBounds:CGRectMake(10.0f,10.0f,300.0f,300.0f)];
确保您将视图出口分配给captureVideoPreviewLayer
,更好地访问 like self.captureVideoPreviewLayer
。如果您按顺序做事,那么设置框架应该使用CGRectMake
. 我一直在用它来改变预览层的大小。
self.captureVideoPreviewLayer.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);