setFrame对AVCaptureVideoPreviewLayer无法正常工作

时间:2013-04-10 07:45:41

标签: ios avfoundation layer

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

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

但它似乎没有遵循CGRectMake,图层高度为300但不是宽度,我不确定为什么!

3 个答案:

答案 0 :(得分:11)

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

答案 1 :(得分:0)

看起来好像你的视图的图层尺寸错误了。对于此更新,视图的大小至少为所需的rect:

[self.view setBounds:CGRectMake(10.0f,10.0f,300.0f,300.0f)];

答案 2 :(得分:0)

确保您为captureVideoPreviewLayer分配了一个视图出口,最好像self.captureVideoPreviewLayer那样进行访问。 如果您按顺序执行操作,则设置框架应使用CGRectMake。我一直用它来改变预览图层的大小。

  self.captureVideoPreviewLayer.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);