CNS*_*mar 29 iphone cocoa-touch ios
我使用UIImagePickerViewController创建了一个简单的应用程序,用于从相机捕获,但我想自定义从相机抓取的界面,例如添加一些按钮.
UIImagePickerViewController不允许直接使用它,那么如何创建一个自定义视图,允许显示实时摄像头源并从中捕获?
Ano*_*mie 30
简单的方法是继续使用UIImagePickerViewController但设置showsCameraControls为NO并使用提供您自己的用户界面cameraOverlayView.
更困难(但更灵活)的方法是使用AVFoundation类(特别是AVCaptureVideoPreviewLayer和AVCaptureStillImageOutput)来构建自己的相机.
Oli*_*ver 23
是的,从代码创建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];
Run Code Online (Sandbox Code Playgroud)
OverlayViewController 是您必须编写的控制器,用于控制添加到叠加层中的所有内容.
pickerReference是您可以保留向相机发送订单的属性.例如,您可以从放置在叠加层上的UIButton的IBAction中调用以下内容:
[self.pickerReference takePicture];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14928 次 |
| 最近记录: |