我的应用程序使用相机,我想在相机预览上添加覆盖。例如,我想在使用相机时使用相框,还想为相机操作添加自定义栏。请帮助我做同样的事情。
发布于 2011-10-04 02:46:11
您可能正在尝试使用UIImagePickerController。但我知道这是解决你问题的一个办法。使用AVCamCaptureManager和AVCamRecorder类可以很容易地做到这一点。苹果在其开发者网站here上有一个演示程序。它被命名为AVCam。简单地说,它所做的就是当您单击打开摄像头时,它会调用负责打开iPhone摄像头并录制视频或捕获音频的类和方法。它调用的类与UIImagePickerController调用的类相同。因此,您的相机将打开并开始接受输入。
现在,如果您打开该AVCam项目的xib文件,您将发现一个小的UIView对象。此视图负责显示摄像机的视频源。您可以根据需要调整该视图的大小,摄像机的输入将显示在该区域中。您也可以根据您的选择将帧图像放在它周围。
当我想要调整相机的输入源的大小和捕捉照片时,它对我很有效。我希望它对你也适用。
发布于 2011-11-12 08:48:39
从代码创建一个UIImagePickerController,调整它的属性,在它上面添加一个覆盖,并使用你的控制器,控制覆盖上你想要的任何东西:自定义控件,覆盖图像,等等……
这就给出了这样的结果:
self.picker = [[UIImagePickerController alloc] init];
self.picker.sourceType = UIImagePickerControllerSourceTypeCamera;
self.picker.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto;
self.picker.cameraDevice = UIImagePickerControllerCameraDeviceRear;
self.picker.showsCameraControls = NO;
self.picker.navigationBarHidden = YES;
self.picker.toolbarHidden = YES;
self.picker.wantsFullScreenLayout = YES;
// Insert the overlay
self.overlay = [[OverlayViewController alloc] initWithNibName:@"Overlay" bundle:nil];
self.overlay.pickerReference = self.picker;
self.picker.cameraOverlayView = self.overlay.view;
self.picker.delegate = self.overlay;
[self presentModalViewController:self.picker animated:NO];
OverlayViewController
是您必须编写的控制器,以控制添加到覆盖上的所有内容。
pickerReference
是一个属性,您可以保留它来向摄像机发送命令。例如,您可以从来自放置在覆盖图上的UIButton的IBAction调用以下代码:
[self.pickerReference takePicture];
发布于 2011-10-04 02:45:40
请阅读文档…中的UIImagePickerController Class Reference
这里有一些属性,特别是cameraOverlayView
和showsCameraControls
属性。
因此,您可以隐藏控件,提供自定义覆盖视图,并在此自定义视图中添加子视图,以添加自定义按钮、框架等。
https://stackoverflow.com/questions/7639188
复制相似问题