我正在尝试将AVCaptureVideoPreviewLayer添加到我的视图中
[captureVideoPreviewLayer setFrame:CGRectMake(10.0f,10.0f,300.0f,300.0f)];
[self.view.layer addSublayer:captureVideoPreviewLayer];
但它似乎没有遵循CGRectMake,图层高度为300但不是宽度,我不确定为什么!
答案 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);