3

我正在尝试像这样将 AVCaptureVideoPreviewLayer 添加到我的视图中

[captureVideoPreviewLayer setFrame:CGRectMake(10.0f,10.0f,300.0f,300.0f)];
[self.view.layer addSublayer:captureVideoPreviewLayer];

但它似乎没有遵循 CGRectMake,层的高度是 300 但不是宽度,我不知道为什么!

4

3 回答 3

11

解决方案很简单,我只需要添加即可captureVideoPreviewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill;解决问题。

于 2013-04-11T19:05:54.070 回答
0

似乎您的视图的图层尺寸错误。为此,将视图的大小至少更新到所需的矩形:

[self.view setBounds:CGRectMake(10.0f,10.0f,300.0f,300.0f)];
于 2013-04-10T07:58:36.997 回答
0

确保您将视图出口分配给captureVideoPreviewLayer,更好地访问 like self.captureVideoPreviewLayer。如果您按顺序做事,那么设置框架应该使用CGRectMake. 我一直在用它来改变预览层的大小。

  self.captureVideoPreviewLayer.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);
于 2013-04-10T08:16:13.977 回答