我对使用UIImagePickerController整个屏幕的摄像机控件的自定义叠加感兴趣,非常类似于切换到视频功能时默认的摄像头应用程序所做的操作.
关于这个主题,我在这里引用了几个问题,尤其是这个问题,以及关于如何为UIImagePickerController使用自定义叠加层的Apple示例,但是它们都没有能够产生成功的全屏结果IOS 7.
到目前为止,这是相机UI与自定义叠加层(没有任何按钮)的样子:

请注意,屏幕底部有一个黑条.我注意到如果我将其更改为1,我可以删除黑条cameraAspectRatio,但是这会使相机变焦,因为它具有非常放大的视图.有没有办法让全屏没有太多扭曲变焦(我明白一点点是必要的),还删除黑条?
这是我配置自定义叠加层的代码:
{
self.imagePickerController.showsCameraControls = NO;
[[NSBundle mainBundle] loadNibNamed:@"overlayView" owner:self options:nil];
self.overlayView.frame = self.imagePickerController.cameraOverlayView.frame;
self.imagePickerController.cameraOverlayView = self.overlayView;
self.overlayView = nil;
// Device's screen size (ignoring rotation intentionally):
CGSize screenSize = [[UIScreen mainScreen] bounds].size;
float cameraAspectRatio = 4.0 / 3.0; //! Note: 4.0 and 4.0 works
float imageWidth = floorf(screenSize.width * cameraAspectRatio);
float scale = ceilf((screenSize.height / imageWidth) * 10.0) / 10.0;
self.imagePickerController.cameraViewTransform = CGAffineTransformMakeScale(scale, scale);
} …Run Code Online (Sandbox Code Playgroud)